Swift學習之可選鏈式呼叫

2021-07-09 12:55:30 字數 1491 閱讀 4372

一種在當前值可能為nil的可選值上呼叫屬性、方法、下標的方法,如果可選值有值,則呼叫成功,否則就返回nil。多個呼叫可以連線在一起形成一條鏈,如果整條鏈的某個節點為nil,則呼叫不成功,返回nil。

class person 

class residence

subscript(index:int)->room

set}

func printnumberofrooms()

var address:address?

}class room

}class address else if buildingnumber != nil && street != nilelse

}}var iyaqi:person = person();

if let roomcount = iyaqi.residence?.rooms.countelse

let address = address()

address.buildingnumber = "302"

address.buildingname = "451"

address.street = "明珠路"

iyaqi.residence?.address = address //nil.因為residence 為nil

var residence:residence? = residence()

iyaqi.residence = residence

iyaqi.residence?.address = address

print(iyaqi.residence?.address?.street) // optional("明珠路")

iyaqi.residence?.numberofrooms //1

iyaqi.residence?.printnumberofrooms() //the number of rooms is 1

if let firstroomname = iyaqi.residence?[0].name

iyaqi.residence?[0] = room(name: "906")

print("iyaiq's first room name is \(iyaqi.residence?[0].name)") //iyaiq's first room name is optional("906")

iyaqi.residence?.address?.buildingname //451

if let buildingid = iyaqi.residence?.address?.buildingidentifier()

if let prefix = iyaqi.residence?.address?.buildingidentifier()?.hasprefix("3") //在buildingidentifier()後面加個問號代表的是整個表示式的可選值上進行鏈式呼叫,而不是buildingidentifier()本身呼叫

Swift16 可選鏈式呼叫

使用可選鏈式呼叫代替強制展開 為可選鏈式呼叫定義模型類 通過可選鏈式呼叫訪問屬性 通過可選鏈式呼叫呼叫方法 通過可選鏈式呼叫訪問下標 連線多層可選鏈式呼叫 在方法的可選返回值上進行可選鏈式呼叫。可選鏈式呼叫是一種可以在當前值可能為nil的可選值上請求和呼叫屬性 方法及下標的方法。如果可選值有值,那麼...

Swift 學習之可選 optionals

swift 學習之可選 optionals 使用可選 optionals 來處理可能缺失的情況 可選表示 有值,等於x 沒有值 nil swift 的 nil 和 objective c 中的 nil 並不一樣。在 objective c 中,nil 是乙個指向 不存在物件的指標。在 swift 中...

學習Swift 可選鏈

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