Swift語言定義后綴!作為標準庫中命名類型ImplicitlyUnwrappedOptional<T>的簡寫。換句話說,下面兩個聲明等價:
var implicitlyUnwrappedString: String!
var implicitlyUnwrappedString: ImplicitlyUnwrappedOptional<String>
上述兩種情況下,變量implicitlyUnwrappedString被聲明為一個隱式解析可選類型的字符串。注意類型與!之間沒有空格。
你可以在使用可選的地方同樣使用隱式解析可選。比如,你可以將隱式解析可選的值賦給變量、常量和可選特性,反之亦然。
有了可選,你在聲明隱式解析可選變量或特性的時候就不用指定初始值,因為它有缺省值nil。
由于隱式解析可選的值會在使用時自動解析,所以沒必要使用操作符!來解析它。也就是說,如果你使用值為nil的隱式解析可選,就會導(dǎo)致運行錯誤。
使用可選鏈會選擇性的執(zhí)行隱式解析可選表達式上的某一個操作。如果值為nil,就不會執(zhí)行任何操作,因此也不會產(chǎn)生運行錯誤。
關(guān)于隱式解析可選的更多細節(jié),見章節(jié)“隱式解析可選”。
隱式解析可選類型(Implicitly Unwrapped Optional Type)語法
隱式解析可選類型 → 類型 !