一尘不染

斯威夫特:守卫让vs如果让

swift

我一直在阅读有关Swift中Optional的内容,并且看到了一些示例,这些示例if let用于检查Optional是否持有值,并且在可能的情况下–使用未包装的值进行操作。

但是,我已经看到在Swift 2.0中关键字guard let是最常用的。我想知道是否if let已从Swift 2.0中删除或是否仍然可以使用它。

我应该改变我的计划包含if letguard let


阅读 240

收藏
2020-07-07

共1个答案

一尘不染

if letguard let达到相似但截然不同的目的。

的“其他”情况guard必须退出当前范围。通常,这意味着它必须调用return或中止程序。guard用于提供早期返回,而无需嵌套其余函数。

if let嵌套其作用域,不需要任何特殊的内容。是否可以return

通常,如果该if-let块将成为该函数的其余部分,或者该else子句的子句中包含a
return或abort,那么您应该使用它guard。这通常意味着(至少以我的经验),如果有疑问,guard通常是更好的答案。但是在很多情况下if let仍然合适。

2020-07-07