你可以使用可選鏈的來調(diào)用可選值的方法并檢查方法調(diào)用是否成功。即使這個方法沒有返回值,你依然可以使用可選鏈來達(dá)成這一目的。
Residence的printNumberOfRooms方法會打印numberOfRooms的當(dāng)前值。方法如下:
func printNumberOfRooms(){
println(“The number of rooms is \(numberOfRooms)”)
}
這個方法沒有返回值。但是,沒有返回值類型的函數(shù)和方法有一個隱式的返回值類型Void(參見Function Without Return Values)。
如果你利用可選鏈調(diào)用此方法,這個方法的返回值類型將是Void?,而不是Void,因?yàn)楫?dāng)通過可選鏈調(diào)用方法時返回值總是可選類型(optional type)。即使這個方法本身沒有定義返回值,你也可以使用if語句來檢查是否能成功調(diào)用printNumberOfRooms方法:如果方法通過可選鏈調(diào)用成功,printNumberOfRooms的隱式返回值將會是Void,如果沒有成功,將返回nil:
if john.residence?.printNumberOfRooms() {
println("It was possible to print the number of rooms.")
} else {
println("It was not possible to print the number of rooms.")
}
// 打印 "It was not possible to print the number of rooms."。