遅延実行 とは
遅延実行とは、特定の文をそれが記述されているよりも後で実行することを指します。
様々な遅延実行方法がありますが、
個人的に簡単だなと思ったdefer文について紹介します。
defer文
defer文において、{ }内に記述されているコードは、
defer文が記述されているスコープの退出時にリセットされます。
後の実行フローの内容にかかわらず、
スコープの退出時に確実に実行されていてほしい処理の記述に利用することが多いです。
defer {
defer文が記述されているスコープの退出時に実行される文
}
action()関数を作成し、defer文内で変数valueに対して値を代入しています。
値の更新は関数の実行の終了後に行われるため、
関数が値を返す時点では変数valueの値は初期値の0のままです。
そのため関数の戻り値は0ですが、
関数の実行後に変数valueにアクセスすると、更新された値になっていることを確認できます。
var value = 0
func action() -> Int {
defer {
value = 10
}
return value
}
print(action())
print(value)
実行結果
0
10
制御構文について学んでいたら、
簡単に使える遅延処理を見つけたのでメモがてら共有しました!
実際に使ったことはないですが意外と使えそうなテクニックなので、
実際に使用して良かったら詳細を記事にしてみようかと思います。
以上、最後までご覧いただきありがとうございました。