0Pricing
Swift Academy · レッスン

有限状態のモデル化

列挙型で有限状態をモデル化します。アプリのフロー(loading、success、error)を表現し、網羅的な処理を保証して、無効な組み合わせを防ぎます。

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

導入

enumは有限個の状態をモデル化します。ネットワークリクエストは読み込み中、成功、失敗のいずれかです。それ以外は有効ではありません。

状態を定義する

シンプルなenumで、リクエストの有効な状態をすべて定義します。

enum RequestState {
    case loading
    case success(data: String)
    case failure(error: String)
}

網羅的なswitch

switchはすべての状態を網羅するよう強制します。どの状態も見落とされません。

let state: RequestState = .success(data: "OK")

switch state {
case .loading:
    print("loading...")
case .success(let d):
    print("success:", d)
case .failure(let e):
    print("error:", e)
}

無効な状態

enumを使わない場合、複数のBoolで状態を管理することになり、矛盾が生じる可能性があります。enumはあり得ない状態を防ぎます。

認証状態

実際のアプリでは、より豊かな状態モデルが必要になることがよくありますが、それでも状態は有限で網羅的です。

enum AuthState {
    case loggedOut
    case loggingIn(user: String)
    case loggedIn(token: String)
    case error(message: String)
}

ヒント

ヒント:

  • 複数のフラグよりもenumを優先します。
  • 関連値を使って追加情報を関連付けます。
  • 有限個の状態だけを対象に設計します。

有限状態の確認

確認:enumはなぜ有限個の状態に適しているのでしょうか。

まとめ

まとめ:enumは有効な状態の閉じた集合をモデル化します。switchは網羅性を保証し、あり得ない組み合わせを防ぎます。

よくある質問

「有限状態のモデル化」レッスンは無料ですか?

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

「有限状態のモデル化」で何を学びますか?

列挙型で有限状態をモデル化します。アプリのフロー(loading、success、error)を表現し、網羅的な処理を保証して、無効な組み合わせを防ぎます。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「有限状態のモデル化」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. 強力な列挙型の基本
  2. パターンマッチングによる強力なswitch
  3. 有限状態のモデル化
← Swift Academyに戻る