swift 筆記 十六 可選鏈

2021-06-22 12:50:43 字數 759 閱讀 2839

可選鏈(optional chaining)

我們都知道「可選型」是什麼,那麼可選鏈又是什麼,舉個例子解釋一下:

struct myname

struct myinfo

class myclass

這裡有兩個結構體和乙個類,當,這個類例項化的時候:

var myinstance = myclass()

所有的可選屬性都會被初始化,因為我寫了預設值。

if let name = 

myinstance.info?.myname?.name

else

在紅字部分,可以看到,是使用的一連串的可選值。這就叫做可選鏈。

這裡我還使用了乙個很早的筆記中提到的  if let name = 可選型 這樣的語法。

這是因為:

在可選鏈中,任何乙個環節的可選型解析失敗(值為nil),那麼整個可選鏈的結果為nil。

當然,其實我們可能會想在第乙個環節使用「!」來讓可選鏈返回乙個確切的值,而不是可選值,比如:

let name = myinstance.info

!.myname

!.name

但,大多數情況,我們並不知道有誰會來改**,有誰會改變某個封裝的實現,如果錯誤的解析了乙個可選值的話(乙個值為nil的可選型),那麼帶來的後果只有乙個,我們的程式會崩掉。。。。所以,

千萬不要這麼幹!!!!!

這章就說了這麼點事兒。。。。至於什麼呼叫函式,使用下標,不需要再說了,邏輯能力正常的人類,都直接就會用了。

swift 注意事項 十六 可選鏈

可選鏈 optional chaining 我們都知道 可選型 是什麼。那麼可選鏈又是什麼,舉個樣例解釋一下 struct myname struct myinfo class myclass 這裡有兩個結構體和乙個類,當。這個類例項化的時候 var myinstance myclass 全部的可選...

Swift 十七 可選鏈

1 swift入門學習筆記 第一版 對swift的基礎知識點進行梳理總結。知識點一直在變,只是作為參考,以蘋果官方文件為準 2 在學習完基本的知識點以後會結合官方文件及相關資料,在此版本的基礎上進行新增更改。1.1 可選型別使用時需要解包,解包時需要判斷是否為nil,常用if語句判斷,再去訪問其屬性...

Swift 可選鏈 備

在swift程式表示式中會看到問號 和感嘆號 它們代表什麼含義呢?這些符號都與可選型別和可選鏈相關,下面來看看可選鏈。可選鏈 類圖 它們之間是典型的關聯關係類圖。這些類一般都是實體類,實體類是系統中的人 事 物。employee通過dept屬性與department關聯,department通過co...