【发布时间】: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 支持可以由单个语句表示的主体。它确实简化了很多事情。
-
我认为
SomeProperty和PushItem是很好的方法,因为它们似乎掩盖了共享的可变状态(最糟糕的一种盯着的东西)。
标签: c# swift expression-bodied-members