ジェネリックコレクションの実践
List、Map、独自コンテナに型を付ける
「ジェネリックコレクションの実践」はCoddyKit上の無料Dart Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDart Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Dart Academyコースには全4レッスンが含まれています。
コレクションはジェネリック
Dartで日常的に使うコレクションは、すべてジェネリックです。List、Set、Mapはそれぞれ型パラメーターを受け取り、保持する値の型を固定します。📦
Listに型を指定する
Listは、要素の型を指定する1つの型パラメーターを受け取ります。List of Stringと宣言すると、すべての要素がStringでなければなりません。
List<String> names = ['Ada', 'Linus'];Setに型を指定する
Setも同じように使えますが、要素は重複しません。Set of intには、重複のない整数を保持できます。
Set<int> ids = {1, 2, 2, 3};Mapに型を指定する
Mapは、キー用と値用の2つの型パラメーターを受け取ります。順序が重要で、キーの型を先に記述します。
Map<String, int> ages = {'Ada': 36};リテラルからの推論
リテラルを記述すると、Dartはその内容から型を推論することがよくあります。数値のリストは自動的にList of intになります。
var scores = [90, 85, 100];空のリテラルには型を指定する
空のリテラルには推論の手がかりがないため、型を自分で追加します。そうしないと、Dartが意図しない型を推測する可能性があります。
var queue = <String>[];要素の型が引き継がれる
型を指定すると、メソッドは正しい要素の型を返します。List of Stringから読み取った値はStringになり、そのまま使用できます。
List<String> names = ['Ada'];
String first = names.first;ジェネリクスを入れ子にする
型パラメーターは、必要なだけ深く入れ子にできます。StringからList of intへのMapも完全に有効で、すべてチェックされます。
Map<String, List<int>> grades = {
'Ada': [90, 85]
};ジェネリクスと変換
mapのようなメソッドは、パイプライン全体で型を引き継ぎます。intを文字列に変換すると、Iterable of Stringになります。
var labels = [1, 2].map((n) => 'n=$n');カスタムジェネリックコンテナ
自分で作ったジェネリッククラスも、この仕組みに組み込めます。Stack of Tには、呼び出し側が選んだ任意の要素型を格納できます。
class Stack<T> {
final _items = <T>[];
void push(T x) => _items.add(x);
}最初から最後まで安全
宣言から変換、格納に至るまで、型はわかったまま保たれます。これが、再利用性と完全なチェックを最後まで得られるメリットです。
理解度チェック
Mapは型パラメーターをいくつ受け取りますか?
まとめ
List、Set、Mapに型を指定し、型推論を利用し、空のリテラルに型を指定し、ジェネリクスを入れ子にする方法を学びました。すべての変換で型が安全に引き継がれます。✅
よくある質問
「ジェネリックコレクションの実践」レッスンは無料ですか?
はい。「ジェネリックコレクションの実践」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Dart Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Dart Academyコースには全4レッスンが含まれています。
「ジェネリックコレクションの実践」で何を学びますか?
List、Map、独自コンテナに型を付ける ブラウザで直接実行するハンズオンコードでDart Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Dart Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDart Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「ジェネリックコレクションの実践」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDart Academyレッスンでコードを書いて実行できますか?
はい。すべてのDart Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。