参考書(詳解Swift改訂版)のコードで理解できないものがあったので質問させていただきます。
下記の関数doit()のdefer文なのですが引数に0を与えdoit()を実行すると二番目のdefer文が実行されません。説明には『実行が及んでないdefer文は実行されない』と書いてあるのですがこのdeferはif文のブロック外なので実行が及んでないの意味がわかりません。
func doit(a:Int) {
var n = 0
defer { print(1,n) }
if a == 0 { return }
defer { print(2, "oops") }
n = a
}
doit(0)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/24 05:13 編集
2016/03/24 05:24
2016/03/24 06:36 編集
2016/03/24 06:49