是否有一个 guard
相当于检查一个变量是否为 nil
?如果是这样,我如何将这样的语句翻译为使用 guard
?
if post["preview"]! != nil {
//do stuff
} else {
//handle case where the variable is nil
}
最佳答案
就像有些人已经回答过的,你可以使用 let
guard let preview = post["preview"] else { /* Handle nil case */ return }
如果不使用变量,可以使用下划线不声明变量,避免警告。
guard let _ = post["preview"] else { /* Handle nil case */ return }
你也可以做一个常规的 bool 检查而不是使用 let
guard post["preview"] != nil else { /* Handle nil case */ return }
对 guard
进行 bool 检查的更一般情况
guard conditionYouExpectToBeTrue else { /* Handle nil case */ return }
如果你想能够修改变量,你可以使用var
而不是let
guard var preview = post["preview"] else { /* Handle nil case */ return }
swift 3.0
您可以通过在语句之间使用逗号将 var/let
与 bool 检查结合起来。
guard let preview = post["preview"], preview != "No Preview" else { /* Handle nil case */ return }
swift 2.x
您可以使用 where where
将 var/let
与 bool 检查结合起来
guard let preview = post["preview"] where preview != "No Preview" else { /* Handle nil case */ return }
关于swift - 用 guard 检查 nil 而不是 if?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36341485/