Swift: case foo (let bar): 没有类型或赋值?
Swift: case foo (let bar): without a type or assignment?
在Swift中,我了解到"let"定义了一个常量。没问题。所以 "let foo = 42" 和 "let foo: Int" 是有道理的。但我看到几个实例,其中只是 "let foo" 没有赋值或类型说明。例如"case bar (let foo): ..."
当 "let foo" 本身在这样的代码中时究竟会发生什么?
此表示法用于绑定枚举的关联值。
以此为例:
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
and .None
。在 .Some
案例中,有一个关联值,称为 Wrapped
,而 .None
案例没有关联值。
其实Optional.None
和nil
是一样的。
在Swift中,我了解到"let"定义了一个常量。没问题。所以 "let foo = 42" 和 "let foo: Int" 是有道理的。但我看到几个实例,其中只是 "let foo" 没有赋值或类型说明。例如"case bar (let foo): ..."
当 "let foo" 本身在这样的代码中时究竟会发生什么?
此表示法用于绑定枚举的关联值。
以此为例:
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
and .None
。在 .Some
案例中,有一个关联值,称为 Wrapped
,而 .None
案例没有关联值。
其实Optional.None
和nil
是一样的。