swift基本語法——Optional可選類型

一個可選類型的常量或變量說明它可以有一個指定值,也可以是nil。可選類型可用于聲明所有的數(shù)據(jù)類型,包括基礎(chǔ)數(shù)據(jù)類型、類、結(jié)構(gòu)體等。

可選類型的聲明

1.可選常量

let a:Int?

2.可選變量

var y:Int? = 10

如果不給可選變量賦值,則它的默認值為nil。在開發(fā)中,還可以給可選項(包括可選常量和可選變量)賦值為nil,表示它沒有值。要注意的是,只有可選項可以賦值為nil,非可選的常量和變量不能賦值為nil。如果想要你的數(shù)據(jù)能賦值為nil,則必須給它聲明為可選類型。
注意:
Swift的nil和Objective-C的nil不一樣。在OC中,nil表示一個空指針,只能用于對象。在Swift中,沒有指針的概念,nil的含義是一個值,表示值得缺失。Swift中的nil可用于任何類型的可選項,不僅限于對象。
標準庫中定義的可選類型是命名型類型Optional<T>,使用后綴?是它的簡寫形式。也就是說,下面兩個聲明是等價的。

var x:Int?
var x:Optional<Int>

解包(Unwrapping)

可選項不能直接參與計算,要使用可選項的值,必須對它進行解包。解包方法是在可選項后加嘆號( ?。硎救〉每蛇x項的值,如果沒有值,則編譯器會報錯。
所以在強制解包時,一定要確??蛇x項例有非nil得值,方法是使用if語句提前對它進行判斷。

隱式解析可選類型

隱式解析可選類型的聲明方法是將數(shù)據(jù)類型后的問號( ?)改成嘆號( !)

let x:Int! = 5
var y:Int! = 10

隱式解析可選類型本質(zhì)上是一個可選類型,但是可以被當(dāng)作非可選類型來取值,可以把它當(dāng)作一個自動解析的可選類型,而不需要每次使用的時候顯示解析。

空合并運算符( ??)

空合并運算法的語法結(jié)構(gòu)為:

a??b

當(dāng)可選類型a不為空時,對a進行強制解包,取出a的值。反之,當(dāng)a為空時,返回默認值b。其中b可以是字面值、常量/變量或者表達式。
空合并運算符有兩個條件:

  • 表達式a必須是可選類型(Optional);
  • 默認值b的數(shù)據(jù)類型必須與a的值數(shù)據(jù)類型一致。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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