【问题标题】:Does Swift support Expression-bodied members?Swift 是否支持表达式主体成员?
【发布时间】:2018-09-21 01:47:03
【问题描述】:

在 C# 中,有一个称为“表达式主体成员”的功能,可让您使用表达式来满足函数/方法或属性的主体。例如,而不是写这些......

void PushItem(object item) {
    someStack.push(item)
}

int AddFour(int x) {
    return x + 4;
}

int SomeProperty{
    get{ return _someProperty; }
    set{ _someProperty = value; }
}

你可以写这些...

void PushItem(object item) => someStack.push(item)

int AddFour(int x) => x + 4;

int SomeProperty{
    get => _someProperty;
    set => _someProperty = value;
}

想知道 Swift 是否有类似的东西。它确实使代码保持美观、简洁和可读性。

【问题讨论】:

  • 据我所知,nope swift 没有类似的东西
  • 这个特性比较新,目前只存在于C#中(其他语言没有这种语法)。它是简化属性 getter 和 setter 声明的语法糖。
  • 该死! Microsoft 对 lambdas(Swift 闭包)和 Expression-Bodied 成员使用相同的 =>,所以我希望 Swift 能够赶上潮流并做同样的/类似的事情。这些天他们似乎在来回竞争。
  • @TetsuyaYamamoto,这不仅仅是属性。 anything 支持可以由单个语句表示的主体。它确实简化了很多事情。
  • 我认为 SomePropertyPushItem 是很好的方法,因为它们似乎掩盖了共享的可变状态(最糟糕的一种盯着的东西)。

标签: c# swift expression-bodied-members


【解决方案1】:

查看闭包部分中的 swift 文档,

我从来没有遇到过这样的事情,

即使在侧面菜单上也没有类似的迹象

Swift 不支持该功能,未来是否会支持尚不清楚。

阅读更多关于 Swift 的信息here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多