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