メソッド内の 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"