MENU
コンテンツ再構築中

Swift: guard と defer についての覚書

Swift2 より登場した guarddefer ですが、if 文に慣れすぎてなかなか使おうとせず、覚えられなかったので、勉強を兼ねてメモしておきます。

INDEX

目次

  • guard
  • defer
  • guard defer サンプル
  • まとめ

guard

条件式が false の場合の処理を記述することができる。if の else 部分のみの構文。

[code]
guard 条件 else {
処理
return or break or throw
}
[/code]

defer

スコープを抜け出す際に、実行される処理を定義できる。

[code]
defer {
処理
}
[/code]

guard defer サンプル

ViewController.swift

[code]
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()

var str: String
for i in 0…3 {
guard i <= 1 else {
// 1以下でない場合(=2,3のとき)に str へ文字が代入される
str = String(i)
print(“guard: \(str)”)
continue
}
defer {
// str に文字が代入されたとき実行される
print(“defer: \(str)”)
}
str = String(i)
}
}
}
[/code]

実行結果

[code]
defer: 0
defer: 1
guard: 2
guard: 3
[/code]

まとめ

guard と defer のセットを適切に利用すれば、if 文よりモダンかつスマートに処理が記述できますね。

この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Please share it!
  • URLをコピーしました!
  • URLをコピーしました!
INDEX