Swift 中可选值的定义如下
enum Optional<Wrapped> {
case none
case some(wrapped)
}
因为 Optional 是枚举类型,所以有的时候可以用模式匹配来进行一些巧妙的操作:
- 使用 if case 来进行模式匹配,对非 nil 的值做 for 循环
let ary = [1, 2, nil, 4, nil, 44]
for case let i? in ary {
print(i)
}
// 1, 2, 4, 44
- 或者只对 nil 值进行循环
for case nil in ary {
print("No Value")
}
这里使用了 x? 这个模式,它只会匹配那些非 nil 的值。这个语法是 .Some(x) 的简写形式,所以该循环还可以被写为:
for case let .some(i) in ary {
}