本記事ではSwiftのgurad let文の使い方を簡単に紹介していきます。
環境: Swift4.2
guard letでできること
まずSwiftのguard letとは何かまとめます。
guard letはオプショナル型(optional)を安全に取り出したい時に使います。
Swiftではオプショナル型からnilを取り出してしまったらエラーが起きてアプリが落ちます。
なので、オプショナル型から値を取り出す時に、
nilじゃなければ取り出すというとをやりたい時にguard letは使えます。
optional型やnilについては、以下の記事にまとめているので参考にしてください。
guard letの書き方
まずguard let文の公式から紹介します。
1 2 3 |
guard let 定数名 = optional型のデータ { //処理 } |
具体的な使い方はこんな感じです。
1 2 3 4 5 6 7 8 9 10 11 12 |
let testNum: Int? = 100 //① func test() { guard let num = testNum else { //② return } print(num) } test() //③ //結果: 100 |
①… オプショナル型変数testNumに100を入れる
②…guard let文で定数numを作る。もし変数testNumがnilならelse節に入ってreturnで処理を終える。nilでなければ、print(num)を実行する。
③…testメソッドを実行。guard let文でチェックし、numは100でnilでないので、print(num)が実行され、100と結果が出力されます。
guard letでチェックしてnilだった場合の例も確認しましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
var testNum: Int? = 100 testNum = nil //① func test() { guard let num = testNum else { print("nilです") //② return } print(num) } test() //結果: nilです |
①…変数testNumにnilを代入しています。
②…変数testNumがnilなので、gurad let文はelse節に入り、print(“nilです”)が実行されます。
guard letはif let文と似ている
if let文でもguard let文と同じように、オプショナル型を安全に取り出すことができます。
違いは、
If let … もしnilでなければ、何か処理をする時
guard let … もしnilだったら処理をする
といった感じです。
使い方を見てみましょう。
1 2 3 4 5 6 7 8 9 10 |
var test: Int? test = nil //① if let testNum = test { //② print("nilです") print(testNum) } //結果: nilです //③ |
①‥変数testにnilを代入
②‥もしtestがnilでなければ、if let文で定数testNumを作る。
③変数testがnilなので、”nilです”と出力される
if letの使い方でも記事を書いているので参考にしてみてください。
まとめ
・Swiftのguard let文は、オプショナル型を安全に取り出すことができる。
・if let文でも似たような処理を行うことができる。
以上で、Swiftのguard letの使い方を終わります。
未経験からエンジニアなりませんか?:社会人転職コース
参考:
Optional – Swift Standard Library | Apple Developer Documentation