Swift 十七 可選鏈

2021-07-07 03:44:59 字數 2793 閱讀 1764

1、swift入門學習筆記(第一版),對swift的基礎知識點進行梳理總結。知識點一直在變,只是作為參考,以蘋果官方文件為準~

2、在學習完基本的知識點以後會結合官方文件及相關資料,在此版本的基礎上進行新增更改。

1.1、可選型別使用時需要解包,解包時需要判斷是否為nil,常用if語句判斷,再去訪問其屬性或方法,否則會執行錯誤。當可選型別訪問其屬性還是可選時,即多層可選,那麼if就顯得比較麻煩。swift提供了可選鏈(可空鏈式呼叫)

1.2、可空鏈式呼叫:一種可以請求和呼叫屬性、方法和下標的過程,請求和呼叫目標可能為空。不為空調用成功,為空返回空(nil)。多個連續呼叫鏈結在一起,有任意乙個結點為空(nil)將導致整個鏈呼叫失敗。

b、可選鏈訪問int?值,你該不會變的更可空(仍然是可空)

通過拆分官方文件來說明:

class

person

class

residence

class

address else

if buildingnumber != nil else

}}

let zane = person()

iflet number = zane.residence?.address?.buildingnumber else

output:

unable to

getthe buildingnumber

可選鏈任意乙個屬性為空則返回nil

2.1、設定屬性值

let myresidence = residence()

zane.residence = myresidence

let someaddress = address()

someaddress.buildingnumber = "218"

zane.residence?.address = someaddress

if let number = zane.residence?.address?.buildingnumber else

output:

output:

the buildingnumber of zane's residence is

218

2.2、訪問函式

通過可空鏈來呼叫addressbuildingidentifier()方法,返回的是string?型別,因此列印的是可選型別

print(zane.residence?.address?.buildingidentifier())
output:

optional("218")
if let buildingidentifier = zane.residence?.address?.buildingidentifier()
output:

zane's building identifier is

218

class

person

class

residence

subscript(i:int) -> room

set

}func printnumberofrooms()

}

有乙個儲存room類的陣列,及房間數屬性

通過下標讀寫陣列元素

let name:string

init(name:string) }

3.1、可選鏈呼叫方法

let zane = person()

if zane.residence?.printnumberofrooms() != nil else

output:

unable to print the

number

of rooms

3.2、可選鏈訪問下標

訪問下標時,問號放在方括號前面

訪問zane.residencerooms陣列中第乙個房間名稱

if

let firstroomname = zane.residence?.rooms[0].name else

output:

getthe

first room name

定義屬性

let myresidence = residence()

zane.residence = myresidence

if let firstroomname = zane.residence?.rooms[0].name else

if zane.residence?.printnumberofrooms() != nil else

output:

is living room.

the number

of rooms is

2it was possible to print the

number

of rooms

Swift 可選鏈 備

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

學習Swift 可選鏈

可空鏈式呼叫是一種可以請求和呼叫屬性 方法及下標的過程,它的可空性體現於請求或呼叫的目標當前可能為空 nil 如果可空的目標有值,那麼呼叫就會成功 如果選擇的目標為空 nil 那麼這種呼叫將返回空 nil 多個連續的呼叫可以被鏈結在一起形成乙個呼叫鏈,如果其中任何乙個節點為空 nil 將導致整個鏈呼...

swift 筆記 十六 可選鏈

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