我一直在阅读有关 Swift 中的 Optionals 的文章,并且我看到了一些示例,其中 if let
用于检查 Optional 是否包含一个值,如果它包含 - 对未包装的值执行一些操作.
但是,我看到在 Swift 2.0 中主要使用关键字 guard let
。我想知道 if let
是否已从 Swift 2.0 中删除,或者它是否仍然可以使用。
我应该将包含 if let
的程序更改为 guard let
吗?
最佳答案
if let
和 guard let
具有相似但不同的目的。
guard
的“else”情况必须退出当前作用域。通常这意味着它必须调用 return
或中止程序。 guard
用于提供提前返回,而不需要嵌套函数的其余部分。
if let
嵌套了它的范围,并且不需要任何特殊的东西。它可以返回
或不返回。
一般来说,如果 if-let
block 将成为函数的其余部分,或者它的 else
子句将有一个 return
或中止,那么您应该改用 guard
。这通常意味着(至少根据我的经验),当有疑问时,guard
通常是更好的答案。但是在很多情况下 if let
仍然是合适的。
关于Swift:守卫 let 与 if let,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32256834/