0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Swift】遅延実行〜defer文〜

Last updated at Posted at 2020-12-09

遅延実行 とは

遅延実行とは、特定の文をそれが記述されているよりも後で実行することを指します。

様々な遅延実行方法がありますが、
個人的に簡単だなと思った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

制御構文について学んでいたら、
簡単に使える遅延処理を見つけたのでメモがてら共有しました!

実際に使ったことはないですが意外と使えそうなテクニックなので、
実際に使用して良かったら詳細を記事にしてみようかと思います。

以上、最後までご覧いただきありがとうございました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?