Swift中的nil與OC中ni的區別

在OC中.nil一般表示爲空值,這麼說可能比較難理解,也可以說是指向一個不存在對象的指針.向nil發送消息不崩潰的原因是objc_msgsend()內部的處理.PS:有一次被問到爲什麼array越界會崩潰…當時想的比較膚淺,其實是因爲越界之後可能訪問,修改了其他空間的值,造成了不安全.

言歸正傳,Swift中的nil的概念和OC不太一樣,Swift中的nil表示的是一個確定的值.任何類型的可選狀態都可以被設置爲nil.如果不是可選值,就不能設置爲nil.(不止是對象類型)

可選值的判斷

var isTure: bool?

1. if判斷

if isTure != nil {
	/// 邏輯代碼
}

2. 可選綁定

if let xxx = isTure {
	/// 執行邏輯代碼
}

3. 合併空值運算符"??"

(isTure ?? false)

如果isTure不爲nil則爲isTure解包的值.如果爲nil則爲右邊的值

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章