我一直在阅读有关 Swift 中的 Optional 的内容,并且我看到了一些示例,这些示例if let用于检查 Optional 是否持有一个值,以及它是否“对未包装的值做某事”。
if let
但是,我已经看到在 Swift 2.0 中guard let主要使用关键字。我想知道是否if let已从 Swift 2.0 中删除,或者是否仍然可以使用。
guard let
我应该将包含的程序更改if let为guard let吗?
if let并guard let服务于相似但不同的目的。
的“其他”情况guard必须退出当前范围。通常这意味着它必须调用return或中止程序。guard用于提供提前返回,而不需要嵌套函数的其余部分。
guard
return
if let嵌套它的范围,并且不需要任何特殊的东西。它可以return或不能。
一般来说,如果if-let块将成为函数的其余部分,或者它的else子句中包含 areturn或 abort,那么您应该guard改用它。这通常意味着(至少根据我的经验),当有疑问时,guard通常是更好的答案。但是有很多情况if let仍然是合适的。
if-let
else