Swift:case foo(let bar):没有类型或赋值?

时间:2016-07-24 14:01:44

标签: ios swift let

在斯威夫特,我理解"让"定义一个常量。没问题。所以"让foo = 42"和"让foo:Int"合理。但我看到几个简单的例子,让foo"是没有赋值或类型规范的。例如" case bar(let foo):..."

当foo"让foo"本身就是这样的代码?

1 个答案:

答案 0 :(得分:3)

此表示法用于绑定枚举的关联值。

以此为例:

let anOptionalInt: Int? = 15

switch (anOptionalInt) {
case .Some(let wrappedValue):
    print(wrappedValue)

case .None:
    print("the optional is nil")
}

这是有效的,因为Optional是一个枚举。第一个表达式可以写成:

let anOptionalInt: Optional<Int> = Optional.Some(15)

有两种情况:.Some.None。在.Some案例中,有一个名为Wrapped的关联值,而.None案例没有关联值。

事实上,Optional.Nonenil相同。