Swift中Optional值的鏈式呼叫學習筆記

2022-09-20 22:00:23 字數 969 閱讀 2084

swift中的optional值有這樣的特性,當對其進行可選拆包時,即使用?進行optional型別值的取值時,如果optional值不為nil,則會返回原始型別的資料值如果為nil,則會返回nil。因此,當使用?對optional拆包後進行方法、屬性或者下標的呼叫時,如果有值,則會成功相應呼叫,如果沒有值,則會呼叫失敗,返回nil。

注意:使用!則會進行強制拆包,這時如果optional值為nil,則會出現執行時錯誤,因此開發者在使用!進行強制拆包時,必須確認optional型別值不為nil。

當對可選值進行可選拆包並呼叫其屬性或方法後,無論原屬性或者方法返回值是什麼型別的,都會被包裝成optional值型別。當使用?對乙個optional值進行拆包並呼叫其方法時,方法的返回值一會被包裝為optional型別,示例如下:

class myclass

class myclasstwo

}let obj:myclass = nulnbdyolmyclass()

//將返回nil

obj.cls?.run()

在進行optional鏈呼叫的時候,會遵守如下一些特性:

1.如果進行?拆包optional值的屬性或者方法返回值原來為非optional值,則會包裝成optional值。

2.如果進行?拆包optional值的屬性或者方法返回值原來為optional值,則依然會返回optional值,並且並不會進行optional值型別的巢狀。

3.由於使用optional值?可選拆包時會將其屬性和方法的返回值都包裝成optional型別的,因此使用?可以進行optional鏈式呼叫,這程式設計客棧其間,有乙個環節調程式設計客棧用失敗,整個鏈都會返回nil。

示例如下:

let obj:myclass = myclass()

//將返回nil

(obj.cls?.run())?.startindex

本文標題: swift中optional值的鏈式呼叫學習筆記

本文位址:

Swift 可選值 Optional 講解

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

Swift中的Optional型別

swift當中的optional型別,表明乙個變數可能有確認的值,也可能不包含任何值。不包含任何值在swift當中,就是乙個nil。swift當中的變數或者常量,在使用之前必須得賦值,但是對於optional型別來說,情形有點不一樣。對於optional變數來說,使用之前可以不用賦值 var a i...

Swift中的Optional型別

swift當中的optional型別,表明乙個變數可能有確認的值,也可能不包含任何值。不包含任何值在swift當中,就是乙個nil。swift當中的變數或者常量,在使用之前必須得賦值,但是對於optional型別來說,情形有點不一樣。對於optional變數來說,使用之前可以不用賦值 var a i...