为什么guard let x = x 在方法内部的行为与外部不同?
下面的示例代码是直接从 Playground 复制而来的。
var x:Int? = 3
func foo(x: Int?) {
guard let x = x else {
return
}
print(x) // print "3\n"
}
foo(x)
guard let x = x else {
throw NSError(domain: "app", code: 0, userInfo: nil)
}
print(x) // print "Optional(x)\n"