小编典典

斯威夫特:保护让与如果让

all

我一直在阅读有关 Swift 中的 Optional 的内容,并且我看到了一些示例,这些示例if let用于检查 Optional
是否持有一个值,以及它是否“对未包装的值做某事”。

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

我应该将包含的程序更改if letguard let吗?


阅读 107

收藏
2022-07-29

共1个答案

小编典典

if letguard let服务于相似但不同的目的。

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

if let嵌套它的范围,并且不需要任何特殊的东西。它可以return或不能。

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

2022-07-29