我有一个需要转换为整数数组的字符串数组。For Case中的可选语句
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?]数组中的Optional值进行模式匹配。我对这个概念的理解是,由于数组是一个可选的int数组,因此返回的值在使用它们之前必须先展开,但是我们在For Case语句中使用可选绑定,因此值将解包到变量“val ”。但变量“val”本身似乎是一个可选变量,这意味着该值需要在print语句中再次解包,但是会给出错误:“不能强制展开非可选类型'Int'的值”,这意味着那“val”不是一个可选变量。
这真是令人困惑。有人可以解释为什么变量“val”不是一个可选变量,当我们使用“?”时用它 !!
谢谢, Ujjwal