Swift的一个很酷的特性是它提供了很多隐式变量,例如:
-
value
在一个
set
陈述。
-
oldValue
在一个
didSet
陈述。
-
error
在一个
catch
条款。
我想知道
switch
声明也有类似之处。别这么想,但我想问问。
例如,采用以下代码(假设有一个枚举定义了
displayName
财产)。
注意,我必须显式地创建一个临时变量来保存函数的结果,因为在下面的case语句中,我必须同时使用它来打开和关闭。。。
let valToSwitchOn = getValToSwitchOn()
switch valToSwitchOn {
case .categories: return categories.count > 0 ? valToSwitchOn.displayName : nil
case .narratives: return narratives.count > 0 ? valToSwitchOn.displayName : nil
}
(注:我正在使用
switchValue
这里是一个例子)
switch getValToSwitchOn() {
case .categories: return categories.count > 0 ? switchValue.displayName : nil
case .narratives: return narratives.count > 0 ? switchValue.displayName : nil
}
这使我可以直接用函数来馈送开关,而不必首先创建显式变量,因为开关的值是隐式为我提供的。如果我这么做没什么大不了的(只有一行),但我想知道是否已经有类似的事情了。
Swift是否有一个隐式变量
转换