Swift Academy · レッスン

if letとguard letによるバインディング

条件付きバインディングと早期退出パターンでOptionalを安全にアンラップします。

レッスン 1/412 ステップ

「if letとguard letによるバインディング」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全4レッスンが含まれています。

ようこそ

オプショナルは、値が存在する場合と存在しない場合を表します。`if let` と `guard let` による安全なアンラップは、クラッシュしない Swift コードの基礎です。

オプショナルとは

```swift var name: String? = "Alice" // has a value var age: Int? = nil // no value ``` オプショナルは、値を `.some(value)` または `.none` でラップします。使用する前にアンラップする必要があります。

if let — 条件付きバインディング

```swift if let name = name { print("Hello, \(name)!") // name is String here } else { print("No name provided") } ``` `if` ブロック内では、`name` はオプショナルではない `String` です。

同じ名前を使う if let(Swift 5.7 以降)

Swift 5.7 以降では、同じ変数名を再利用できます: ```swift if let name { print("Hello, \(name)!") } ``` より短く、読みやすくなります。`let name = name` と記述する必要はありません。

guard let — 早期終了

`guard let` はアンラップし、nil の場合は早期終了します: ```swift func greet(_ name: String?) { guard let name else { return } print("Hello, \(name)!") } ``` `guard` の後では、関数の残りの部分で `name` が nil ではないことが保証されます。

複数のバインディングを連結する

1 つの文で複数のオプショナルをアンラップします: ```swift if let first = firstName, let last = lastName { print("\(first) \(last)") } guard let id = userId, let token = authToken else { return } ``` 本体を実行するには、すべてのバインディングが成功する必要があります。

where 条件を追加する

アンラップと条件を組み合わせます: ```swift if let score = rawScore, score >= 60 { print("Passed with \(score)") } ``` バインディングと条件は一緒に評価されるため、ネストした if よりも簡潔です。

guard let と if let の使い分け

両方の分岐で値が必要な場合は `if let` を使います。 前提条件を検証して早期に戻る場合は `guard let` を使います: ```swift // if let: handle both cases if let data = response.data { process(data) } else { showError() } // guard: ensure requirements are met guard let data = response.data else { showError(); return } process(data) ```

ネストした if let と guard

深くネストした `if let`(「破滅のピラミッド」)は、読みにくくなります: ```swift if let a = aOpt { if let b = bOpt { if let c = cOpt { process(a, b, c) } } } ``` `guard` を使ってリファクタリングできます: ```swift guard let a = aOpt, let b = bOpt, let c = cOpt else { return } process(a, b, c) ```

バインディングなしで確認する

値が存在するかどうかだけを確認したい場合は、`!= nil` を使います: ```swift if token != nil { showLoggedInUI() } ``` ただし、アンラップした値も必要な場合は `if let` を優先してください。

理解度チェック

オプショナルが `nil` の場合に、現在のスコープを終了する文はどれですか?

まとめ

要点: • `if let x = optional` — nil ではないコンテキストに安全に分岐します • `guard let x = optional else { return }` — 失敗時に即座に早期終了します • 複数のバインディングをカンマで連結できます • `guard let` を使うと、深くネストしたピラミッドを避けられます • Swift 5.7 以降:`if let x`(同じ名前を使う短縮構文) 次は、nil 合体と ?? 演算子です。
無料で開始

AI チューターと学ぶ Swift — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
122
レッスン
409

よくある質問

「if letとguard letによるバインディング」レッスンは無料ですか?

はい。「if letとguard letによるバインディング」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全4レッスンが含まれています。

「if letとguard letによるバインディング」で何を学びますか?

条件付きバインディングと早期退出パターンでOptionalを安全にアンラップします。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Swift Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「if letとguard letによるバインディング」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSwift Academyレッスンでコードを書いて実行できますか?

はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. if letとguard letによるバインディング
  2. OptionalのNil合体と三項演算子
  3. Optional Chaining ?. 演算子
  4. 暗黙的アンラップOptionalと避けるべき場面
← Swift Academyに戻る