可選表示變數中可能沒有值。可選的值要麼是指定型別的例項,要麼是nil。
使用型別名加上"?" 表示。
// 如果沒有賦初始值,預設值就是nil
var anoptionalfloat:float
var anoptionalarrayofstrings:[string]?
var anoptionalarrayofoptionalstrings:[string?]?
讀取可選型別的時候,要先檢視值是否為nil,這個過程叫做解包
強制解包: 強制解包需要在變數名後面加乙個"!"
var convertednumber:int? = 3
if convertednumber != nil
一旦你確定可選中包含值,你可以在可選的名字後面加乙個感嘆號 ( ! ) 來獲取值,感嘆號 的意思就是說「我知道這個可選項裡邊有值,展開吧。」這就是所謂的可選值的強制解包。
2. 正常解包
使用if-let語句,先把可選值賦值給對應的非可選臨時變數,如果可選值有值,那麼賦值是有效的,使用非可選臨時變數執行後面的**,如果可選值是nil,那麼在else中處理這種情況。
var possiblenumber = "789"
if let actualnumber = int(possiblenumber) else // prints "'789' has an integer value of 789"
**可以讀作:
「如果 int(possiblenumber) 返回的可選 int 包含乙個值,將這個可選項中的值賦予乙個叫做 actualnumber 的新常量。」 如果轉換成功,常量 actualnumber 就可以用在 if 語句的第乙個分支中,他早已被可選內部 的值進行了初始化,所以這時就沒有必要用 ! 字尾來獲取裡邊的值。在這個例子中 actualnumber 被用來輸出轉換後的值。 常量和變數都可以使用可選項繫結,如果你想操作 if 語句中第乙個分支的 actualnumber 的 值,你可以寫 if var actualnumber 來代替,可選項內部包含的值就會被設定為乙個變數而不是常量。
Swift 可選型別
swift 可選型別 optionals 可選型別 強制解析 自動解析 可選繫結 1.可選型別 加入我們建立乙個變數,但是它有可能為空,這時候swift提供乙個符號 來表示這是乙個可能為空的變數 var thisstr string?看到這裡的if,沒錯,if或者for迴圈後面的內容不加 加了也沒錯...
Swift 可選型別
在 swift 中,可選型別用來處理值可能缺失的情況,表示下面兩種情況 在 swift 中宣告變數時,使用?或 來表示宣告的變數是可選型別。let name string?var age int 此時,變數name和age預設都是nil,表示空。而?和 的區別在於使用前者宣告的變數所包含的值時,需要...
Swift 可選型別(optional)與建構函式
在swift快速入門時,發現自己很難理解可選型別 所以本文通過一些類的互相呼叫來加強對可選型別的理解 本文涉及的內容有 類,建構函式,可選型別的定義和使用 可選型別是swift中特有的,c和objective c中都沒有這個概念。當你定義乙個型別為可選型別時,它可以為nil,或者可以乙個值 申明乙個...