Swift: case foo (let bar): 没有类型或赋值?
Posted
技术标签:
【中文标题】Swift: case foo (let bar): 没有类型或赋值?【英文标题】:Swift: case foo (let bar): without a type or assignment? 【发布时间】:2016-11-27 21:58:32 【问题描述】:在 Swift 中,我知道“let”定义了一个常量。没问题。所以“let foo = 42”和“let foo: Int”是有意义的。但是我看到几个例子,其中简单地编写了“let foo”而没有赋值或类型规范。例如“case bar (let foo): ...”
当“let foo”本身出现在这样的代码中时,究竟会发生什么?
【问题讨论】:
你能展示可执行的例子吗? 代码中的某处会出现类似case bar(Int)
的case声明
【参考方案1】:
此表示法用于绑定枚举的关联值。
以此为例:
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.None
和nil
是一样的。
【讨论】:
以上是关于Swift: case foo (let bar): 没有类型或赋值?的主要内容,如果未能解决你的问题,请参考以下文章