如何跳出函数之外的保护语句?

Kev*_*566 2 optional swift swift-playground

我在操场上运行一些代码。

var  optional:  Int?
guard let unwrapped = optional else {
    print("optional is nil")
    return
}
print("Optional is not nil”)
Run Code Online (Sandbox Code Playgroud)

使用此当前代码,我收到一条错误消息,指出“在 func 之外返回无效”。如果我更换returnbreak,我得到一个错误,指出break只允许一个循环或交换机的内部。如果我在 print 语句之后没有任何其他语句,我会收到一条错误消息,指出“保护主体不能落空,请考虑使用 return 或 throw 退出范围”。

Mar*_*n R 6

在顶层,您可以fatalError()用来终止执行:

var  optional:  Int?
guard let unwrapped = optional else {
    fatalError("optional is nil")
}
print("Optional is not nil!")
Run Code Online (Sandbox Code Playgroud)

这允许程序编译。执行它会显示一个

错误:执行被中断

在“致命”线上,以及

致命错误:可选为 nil:文件 MyPlayground.playground,第 5 行

显示在控制台中。