一種在當前值可能為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 將導致整個鏈呼...