Swift - 可選類型

在實際開發過程中,經常會遇到一個數據可能有值,也可能沒有值的情況。針對這種情況,Swift增加了可選類型(Optional)。可選類型可以生命所有的數據類型。
可選類型的聲明
在聲明常量或變量時,在類型后面加問號(?),就表示它是可選的。
(1)可選常量:

let a:Int?

可選常量沒有默認值,在使用之前必須設置初值。

可選常量必須設置初值

(2)可選變量:

var x:Int?

可選變量如果不給賦初值,它的默認值為 nil

可選變量默認為nil
可選變量賦初值的打印結果

注意:Swift中的nil和Objective-C中的nil不一樣。在OC中,nil表示空指針,只能用于對象類型,在Swift中,沒有指針的概念,nil的含義是一個值,表示值的缺失,可用于任何類型。

解包
可選類型不能直接參與計算,參與計算時需要進行解包。解包的方法是在可選項后加感嘆號(!)。

let x:Int? = 10
print(x! + 2)

在解包前,可選項必須有值


可選項沒有值進行計算會報錯

隱式解析
可選類型每次解包很麻煩,可以采用隱式解析的方法,在聲明時將數據類型后的問號改成嘆號。

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

如果變量的值可能為nil,不要用隱式解析的方法

空合并運算符
可選類型如果為空是不能參與運算的,所以在使用之前要對其進行判斷,空合并運算符可以簡化運算:

空合并運算符相當于算目運算符:a! = nil ? a! : b。空合并運算符更加簡潔,可讀性增強。

使用空合并運算符需要注意,必須符合以下兩個條件:

  • 表達式 a 必須是可選類型
  • 默認值b的數據類型必須與 a 的值 數據類型一致

OK,這就是可選類型的聲明和基本用法,明天分享控制流。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 在值可能不存在的情況下,您可以使用可選值。 可選表示兩種可能性:有一個值,您可以解開可選值以訪問該值,或者根本沒有...
    Joker_King閱讀 406評論 0 0
  • 可選類型 在Swift中,可選類型其根源是一個枚舉型,里面有None和Some兩種類型.其實所謂的nil就...
    Amok校長閱讀 291評論 0 0
  • 關于 Swift 重要這個文檔所包含的準備信息, 是關于開發的 API 和技術的。這個信息可能會改變, 根據這個文...
    無灃閱讀 4,378評論 1 27
  • 可選類型 聲明變量或常量的時候,代表可以有值,也可以無值。在類型標注后面,用?表示當其沒有值時可以賦值nil 如果...
    fylq閱讀 882評論 0 1
  • 1 突然打了一個激靈。肌肉牽扯著, 他睡了多久了? 不,是壓根就沒睡過吧。恍惚中抬起自己都認為沒有了的眼皮,電燈一...
    麟十行閱讀 129評論 0 0