swift 注意事項 十六 可選鏈

2021-09-08 11:22:08 字數 776 閱讀 3324

可選鏈(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 函式使用注意事項

import uikit 中的預設引數 在引數型別後加上 引數值 func teachcourse coursename string 語文 teachcourse 如果在呼叫函式時不傳引數,則使用預設引數 teachcourse coursename 歷史 如果有引數,則使用傳遞的引數 2.可變引...

Swift 十七 可選鏈

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