Swift Academy · レッスン

強力な列挙型の基本

raw valueやassociated valueを持つ列挙型を定義し、switchで網羅的にマッチングして、状態をモデル化します。

レッスン 1/38 ステップ

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

導入

Swiftの列挙型は単純な定数にとどまりません。raw値や関連値を持つことができ、網羅的なswitch文と組み合わせて使えます。

raw値

raw値では、各ケースにStringやIntなどの定数値を割り当てます。

enum Direction: String {
    case north = "N"
    case south = "S"
}
print(Direction.north.rawValue)

関連値

関連値を使うと、各ケースにユーザー名やIDなどの追加データを格納できます。

enum Login {
    case user(String)
    case guest
}
let l = Login.user("Ada")
print(l)

パターンマッチング

switchとパターンマッチングを使って、関連値を取り出します。

switch l {
case .user(let name): print("Hello", name)
case .guest: print("Guest access") }

状態のモデル化

列挙型では、接続状態のような有限個の状態を、必要に応じてデータとともにモデル化できます。

enum Connection {
    case connected
    case disconnected
    case connecting(Int) // progress percent
}
let c = Connection.connecting(50)
print(c)

ヒント

ヒント:

  • Enumは網羅的です。switchですべてのケースを処理する必要があります。
  • 柔軟なデータには関連値を使用します。
  • raw valueはより単純な定数です。

Enumのデータ Q

確認: Enumのケースに追加のデータを保持させられる機能はどれですか?

まとめ

まとめ: SwiftのEnumにはraw valueまたは関連値を持たせられます。網羅的で強力な状態モデルを作るには、パターンマッチングとともにswitchを使用します。

無料で開始

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

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

コース
122
レッスン
409

よくある質問

「強力な列挙型の基本」レッスンは無料ですか?

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

「強力な列挙型の基本」で何を学びますか?

raw valueやassociated valueを持つ列挙型を定義し、switchで網羅的にマッチングして、状態をモデル化します。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「強力な列挙型の基本」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

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