前面的例子解釋了如何通過(guò)可選鏈來(lái)獲得可選類(lèi)型屬性值。你也可以通過(guò)可選鏈調(diào)用一個(gè)返回可選類(lèi)型值的方法并按需鏈接該方法的返回值。
下面的例子通過(guò)可選鏈調(diào)用了Address類(lèi)中的buildingIdentifier 方法。這個(gè)方法的返回值類(lèi)型是String?。如上所述,這個(gè)方法在可選鏈調(diào)用后最終的返回值類(lèi)型依然是String?:
if let buildingIdentifier = john.residence?.address?.buildingIdentifier() {
println("John's building identifier is \(buildingIdentifier).")
}
// 打印 "John's building identifier is The Larches."。
如果你還想進(jìn)一步對(duì)方法返回值執(zhí)行可選鏈,將可選鏈問(wèn)號(hào)符放在方法括號(hào)的后面:
if let upper = john.residence?.address?.buildingIdentifier()?.uppercaseString {
println("John's uppercase building identifier is \(upper).")
}
// 打印 "John's uppercase building identifier is THE LARCHES."。
注意:
在上面的例子中,你將可選鏈問(wèn)號(hào)符放在括號(hào)后面是因?yàn)槟阆胍溄拥目蛇x值是buildingIdentifier方法的返回值,不是buildingIdentifier方法本身。