我有一個需要轉換爲整數數組的字符串數組。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