0Pricing
Dart Academy · レッスン

フィールドとメソッドを持つ拡張Enum

各値にデータと振る舞いを持たせる

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

Enum はデータを持てる

最新の Dart では、enum の各メンバーに独自のデータを持たせられます。これは拡張 enumと呼ばれ、単純なラベルを豊かな値に変えます。

フィールドを追加する

enum にfinalフィールドを宣言し、各メンバーに値を渡します。これで各メンバーが追加データを持つようになります。

enum Planet {
  earth(9.8), mars(3.7);
  final double gravity;
}

const コンストラクターが必要

拡張 enum でフィールドを設定するにはconstコンストラクターが必要です。値が作成されるとき、各メンバーに対して1回実行されます。

const Planet(this.gravity);

メンバーからコンストラクター引数を渡す

かっこ内の値はコンストラクター引数です。earth(9.8) は、重力を 9.8 に設定して earth を作成するという意味です。

earth(9.8), mars(3.7);

メンバーのフィールドを読み取る

通常のプロパティと同じように、メンバーを通してデータにアクセスします。各メンバーは自身に保存された値を返します。

print(Planet.earth.gravity); // 9.8

複数のフィールド

拡張 enum は複数のフィールドを同時に持てます。コンストラクターにフィールドを列挙し、各メンバーにそれぞれの値を指定します。

enum Coin { penny(1, "1c"), dime(10, "10c"); }

メソッドを追加する

拡張 enum ではメソッドも定義できます。メソッドからメンバーのフィールドを利用できるため、各値に実際の振る舞いを持たせられます。

double weightOf(double mass) => mass * gravity;

Enum のメソッドを呼び出す

通常のオブジェクトと同じように、任意のメンバーでメソッドを呼び出します。そのメンバー自身のフィールド値を使って実行されます。

print(Planet.mars.weightOf(70)); // 259.0

Getter を追加する

計算によるgetterも利用できます。新しい値を保存せず、フィールドから導き出した値を返します。

bool get isStrong => gravity > 5;

Enum であることに変わりはない

機能が増えても、拡張 enum はvalues、index、name を引き続き持ちます。フィールドやメソッドを追加しても失うものはありません。

print(Planet.values.length); // 2

拡張するタイミング

色と16進数のカラーコードのように、各選択肢が関連するデータを持つ場合は拡張 enumを使います。データと選択肢を一体化できます。

クイックチェック

フィールドを持つ拡張 enum に必ず含める必要があるものは何ですか?

まとめ: 拡張 Enum

拡張 enum では const コンストラクターを通じてフィールドとメソッドを持たせられるため、各メンバーが独自のデータと振る舞いを持てることを学びました。🚀

よくある質問

「フィールドとメソッドを持つ拡張Enum」レッスンは無料ですか?

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

「フィールドとメソッドを持つ拡張Enum」で何を学びますか?

各値にデータと振る舞いを持たせる ブラウザで直接実行するハンズオンコードでDart Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「フィールドとメソッドを持つ拡張Enum」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. 通常のEnumの宣言と使用
  2. Enumの値、index、name
  3. フィールドとメソッドを持つ拡張Enum
  4. Enumをswitchで漏れなく処理する
← Dart Academyに戻る