swift - 用 guard 检查 nil 而不是 if?

标签 swift

是否有一个 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 wherevar/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/

相关文章:

ios - 异步任务后 SwiftUI 中的正确导航方式

swift - 有没有办法将枚举 rawValue 向下转换为它的类型?

ios - 如何将图像添加到顶部布局

swift - 我正在尝试创建一个函数,如果他们在晋升名单上,就会增加员工的工资

ios - 我可以将 swift 版本降级到中度错误 'Module compiled with Swift x.x cannot be imported by the Swift x.x compiler' 吗?

swift - 我可以设置 CocoaPods 框架 Swift 版本吗?

ios - Swift 泛型和向上转型

ios - 如何以编程方式检测用户何时在“今日 View ”中启用小部件

swift - 返回完成处理程序后重新执行 while 循环

swift - 快速在 Popover ViewController 中添加字符串数组