Dart リスト(配列)同士をIterableとして連結する

Dartで、リスト(配列)同士をIterableとして連結するコードを記述してます。「followedBy」を使用します。型の違うリスト同士に使用するとエラーが発生します。
環境
- OS windows11 home
- Dart 2.18.1
Iterableとして連結
Iterableとして連結するには「 followedBy 」を使用します。
リスト.followedBy(リスト)
※Iterableが返ります
実際に、使用して連結してみます。
void main() {
var list1 = ['aaa', 'bbb'];
var list2 = ['ccc', 'ddd'];
var result = list1.followedBy(list2);
print(result); // (aaa, bbb, ccc, ddd)
print(result.runtimeType); // EfficientLengthFollowedByIterable<String>
}
実行結果を見ると、連結されていることが確認できます。

数値同士の場合は「Iterable<int>」が返ります。
void main() {
var list1 = [11, 22];
var list2 = [33, 44];
var result = list1.followedBy(list2);
print(result); // (11, 22, 33, 44)
print(result.runtimeType); // EfficientLengthFollowedByIterable<int>
}
型の違うものに使用するとエラーが発生します。
void main() {
var list1 = [11, 22];
var list2 = ['aa', 'bb'];
var result = list1.followedBy(list2);
print(result);
print(result.runtimeType);
}
main.dart:5:33: Error: The argument type 'List<String>' can't be assigned to the parameter type 'Iterable<int>'.
- 'List' is from 'dart:core'.
- 'Iterable' is from 'dart:core'.
var result = list1.followedBy(list2);
3つ以上のリスト(配列)を連結させる場合は「followedBy」をチェーンメソッドで使用します。
void main() {
var list1 = [11, 22];
var list2 = [33, 44];
var list3 = [55, 66];
var result = list1.followedBy(list2).followedBy(list3);
print(result); // [11, 22, 33, 44, 55, 66]
}
空のリスト(配列)
空のリスト(配列)同士に使用すると、空の「Iterable」が返ります。
void main() {
var list1 = [];
var list2 = [];
var result = list1.followedBy(list2);
print(result); // ()
print(result.runtimeType); // EfficientLengthFollowedByIterable<dynamic>
}
リスト(配列)に変換
リスト(配列)に変換する場合は「toList()」でリストに変換します。
void main() {
var list1 = [11, 22];
var list2 = [33, 44];
var result = list1.followedBy(list2);
print(result.toList()); // [11, 22, 33, 44]
print(result.toList().runtimeType); // List<int>
}
-
前の記事
Redis キー名をパターンを指定して検索する 2022.11.11
-
次の記事
javascript マウスオーバーでテキストの色を切り替える 2022.11.12
コメントを書く