【发布时间】:2017-10-06 15:03:25
【问题描述】:
我有一个字符串数组,需要转换为整数数组。
import Foundation
let strings = ["One", "2", "Three", "4", "Five", "6"]
let integers = strings.map{Int($0)}
// :Using Optional Binding in a FOR Case Statement
for case let val? in integers {
print("\(val)")
}
在上面的 For Case 语句中,我们使用 [Int?] 数组中的可选值进行模式匹配。我对这个概念的理解是,由于数组是一个可选的 int 数组,返回的值在使用它们之前必须被解包,但是我们在 For Case 语句中使用了可选绑定,因此值被解包到变量“val ”。但是变量“val”本身似乎是一个可选变量,这意味着需要在打印语句中再次解包该值,但这会产生错误:“无法强制解包非可选类型'Int'的值”这意味着“val”不是可选变量。
这真是令人困惑。有人可以解释为什么当我们使用“?”时变量“val”不是可选变量吗?用它!!
谢谢, 乌杰瓦尔
【问题讨论】: