Swift 可選 Optionals 型別

2021-08-05 22:29:06 字數 1517 閱讀 7288

swift 的可選(optional)型別,用於處理值缺失的情況。可選表示」那兒有乙個值,並且它等於 x 「或者」那兒沒有值」。

swfit語言定義字尾?作為命名型別optional的簡寫,換句話說,以下兩種宣告是相等的:

var optionalinteger: int?

var optionalinteger: optional

注意,在型別和 ?之間沒有空格。

optional 是乙個含有兩種情況的列舉,none 和 some(t),用來表示可能有或可能沒有值。任何型別都可以明確宣告為(或者隱式轉換)可選型別。當宣告乙個可選型別的時候,要確保用括號給 ? 操作符乙個合適的範圍。例如,宣告可選整數陣列,應該寫成 (int)? 寫成 int? 會報錯。

當你宣告乙個可選變數或者可選屬性的時候沒有提供初始值,它的值會預設為 nil。

如果乙個可選型別的例項包含乙個值,你可以用字尾操作符 !來訪問這個值,如下所示:

optionalinteger =42

optionalinteger! // 42

使用操作符!去獲取值為nil的可選變數會有執行時錯誤。

你可以用可選鏈結和可選繫結選擇性執行可選表示式上的操作。如果值為nil,任何操作都不會執行,也不會有執行報錯。

讓我們來詳細看下以下例項來了解 swift 中可選型別的應用:

var mystring: string? = nil

if mystring != nil else

var mystring:string?

mystring = "hello, swift!"

if mystring != nil else

輸出:

hello, swift

!

你可以在宣告可選變數時使用感嘆號(!)替換問號(?)。這樣可選變數在使用時就不需要再加乙個感嘆號(!)來獲取值,它會自動解析。

var mystring: string!

mystring = "hello, swift!"

if mystring != nil else

輸出:

hello, swift

!

使用可選繫結(optional binding)來判斷可選型別是否包含值,如果包含就把值賦給乙個臨時常量或者變數。可選繫結可以用在if和while語句中來對可選型別的值進行判斷並把值賦給乙個常量或者變數。

var

mystring: string?

mystring = "hello, swift!"

iflet yourstring = mystring else

輸出:

你的字串值為 - hello, swift

!

Swift 可選值 Optional 講解

前提 swift中有規定 物件中的任何屬性在建立時,都必須要有明確的初始化值 1.定義可選型別 方式一 常規方式 不常用 var name optional nil 方式二 語法糖 常用 var name string?nil optional理解 optional也是objective c沒有的資...

Swift 可選型別(optional)與建構函式

在swift快速入門時,發現自己很難理解可選型別 所以本文通過一些類的互相呼叫來加強對可選型別的理解 本文涉及的內容有 類,建構函式,可選型別的定義和使用 可選型別是swift中特有的,c和objective c中都沒有這個概念。當你定義乙個型別為可選型別時,它可以為nil,或者可以乙個值 申明乙個...

swift學習記錄(Optional)

對swift語法的陌生主要 於兩個地方,乙個是區別於其他語言的語法形式,比如c 中的int i 與swift中的var i int 另外乙個是語法的功能,swift中的語法功能千奇百怪。從這篇文章開始,主要通過閱讀與搜尋the swift programing language 來學習,記錄學習過程...