swift 中 _ 和 !和 ? 分別是什么東西呢?

1、在swift中有么一個(gè)“_”符號(hào),具體例子如下。

func greet(_ person: String, on day: String) -> String {
    return "Hello \(person), today is \(day)."
}

分析:使用_代表忽略(不使用)參數(shù)標(biāo)簽。

2.!?是什么東西呢?

? 和 ! 其實(shí)分別是Swift語(yǔ)言中對(duì)一種可選類型( Optional) 操作的語(yǔ)法糖。
?是一種判斷后再拆包的語(yǔ)法糖
!是一種強(qiáng)制拆包的語(yǔ)法糖
當(dāng)你不確定有值的時(shí)候就可以用 ?
當(dāng)你確定有值的時(shí)候可以用 !

例如: var name: String? Optional其實(shí)是個(gè)enum,里面有None和Some兩種類型。 其實(shí)所謂的nil就是Optional.None , 非nil就是Optional.Some, 然后會(huì)通過(guò)Some(T)包裝(wrap)原始值, 這也是為什么在使用Optional的時(shí)候要拆包(從enum里取出來(lái)原始值)的原因。

Snip20190225_2.png

?的幾種使用場(chǎng)景:
1.聲明Optional值變量
2.用在對(duì)Optional值操作中,用來(lái)判斷是否能響應(yīng)后面的操作
3.用于安全調(diào)用protocol的optional方法
4.使用 as? 向下轉(zhuǎn)型(Downcast)

!的使用場(chǎng)景
1.強(qiáng)制對(duì)Optional值進(jìn)行拆包(unwrap)
2.聲明Implicitly Unwrapped Optionals值,一般用于類中的屬性

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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