swift 可選與解包

2021-09-03 08:17:57 字數 1102 閱讀 3399

可選表示變數中可能沒有值。可選的值要麼是指定型別的例項,要麼是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,或者可以乙個值 申明乙個...