Swift--“ ?”和“ !”的用法

“?”表示可選類型(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")
}

注意:

使用!來(lái)獲取一個(gè)不存在的可選值會(huì)導(dǎo)致運(yùn)行時(shí)錯(cuò)誤。使用!來(lái)強(qiáng)制解析值之前,一定要確定可選包含一個(gè)非nil的值。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容