Swift2 より登場した guard と defer ですが、if 文に慣れすぎてなかなか使おうとせず、覚えられなかったので、勉強を兼ねてメモしておきます。
目次
- 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で共有していただければ幸いです。