“?”表示可選類型(Optionals)
“!”表示隱式可選類型(全名:implicitly unwrapped optionals),其實(shí)還是可選類型。
Swfit語(yǔ)言定義后綴 ?作為命名類型Optional的簡(jiǎn)寫,換句話說(shuō),以下兩種聲明是相等的:
var optionalInteger: Int?
var optionalInteger: Optional<Int>
強(qiáng)制解析
當(dāng)你確定可選類型確實(shí)包含值之后,你可以在可選的名字后面加一個(gè)感嘆號(hào) "!" 來(lái)獲取值。這個(gè)感嘆號(hào)表示"我知道這個(gè)可選有值,請(qǐng)使用它。"這被稱為可選值的強(qiáng)制解析(forced unwrapping)。
示例如下:
import Cocoa
var myString:String?
myString = "Hello, Swift!"
if myString != nil {
// 強(qiáng)制解析
print( myString! )
}else{
print("myString 值為 nil")
}