Swift 如何知道可选链接在哪里断开?
因此,在iOS Swift中,我们可以进行可选链接,以简化Swift 如何知道可选链接在哪里断开?,swift,optional,Swift,Optional,因此,在iOS Swift中,我们可以进行可选链接,以简化 我了解在john.residence?.address?.street中可选链接的用法,但我们如何知道链接实际在哪里断开(如果residence或address为nil)。我们是否可以确定住所或地址是否为零,或者我们是否需要使用再次检查它,否则 我不这么认为。可选链接是一种方便的快捷语法,只需按几个键,您就可以放弃一些控制 如果你真的需要知道链的确切断裂位置,你必须一个接一个地链接到多个变量中。那么不要做链。只有当你不想停下来的时候,这
我了解在
john.residence?.address?.street
中可选链接的用法,但我们如何知道链接实际在哪里断开(如果residence
或address
为nil
)。我们是否可以确定住所
或地址
是否为零
,或者我们是否需要使用再次检查它,否则
我不这么认为。可选链接是一种方便的快捷语法,只需按几个键,您就可以放弃一些控制
如果你真的需要知道链的确切断裂位置,你必须一个接一个地链接到多个变量中。那么不要做链。只有当你不想停下来的时候,这个链条才有意思。如果你这样做了,在有趣的地方把它分解——否则,你会把坏情况的代码放在哪里
if let residence = john.residence {
if let address = residence.address {
...
} else {
println("missing address")
}
} else {
println("missing residence")
}
无法判断可选链接停止的位置。但是,您可以使用:
if let johnsStreet = john.residence?.address?.street {
println("John's street name is \(johnsStreet).")
} else if let johnAddress = john.residence?.address {
println("Unable to retreive street, but John's address is \(johnAddress).")
} else {
println("Unable to retrieve the address.")
}
可选链接的全部要点是,该值在任何点都可能是
nil
。如果您需要知道,那么可选链接对于您的代码来说不是一个好的选择。@BenjaminGruenbaum很好的参数!谢谢
if let johnsStreet = john.residence?.address?.street {
println("John's street name is \(johnsStreet).")
} else if let johnAddress = john.residence?.address {
println("Unable to retreive street, but John's address is \(johnAddress).")
} else {
println("Unable to retrieve the address.")
}