Dart ListクラスのtoList()メソッドについてメモ書き。
toList()はイテラブル型要素を配列型にするメソッド。
配列は固定長、可変長をオプション引数の「growable」で指定できる。
growableはbool型でtrueが可変長、falseが固定長となる。デフォルトはtrue。
コーディングでtoList()メソッドを確認。
Map型のkeyを配列にしてみる。
void main() {
try {
final mapTest = <String, int>{
"Apple": 0,
"Orange1": 1,
"Banana": 2,
"grape": 3,
"Orange2": 4
};
final key = mapTest.keys.toList();
print(key);
} catch (e) {
print(e.toString());
}
}
実行結果。
[Apple, Orange1, Banana, grape, Orange2]
デフォルトは可変長なので、末尾の要素を削除してみる。
void main() {
try {
final mapTest = <String, int>{
"Apple": 0,
"Orange1": 1,
"Banana": 2,
"grape": 3,
"Orange2": 4
};
final key = mapTest.keys.toList();
key.removeLast();
print(key);
} catch (e) {
print(e.toString());
}
}
実行結果。
配列末尾が削除されている。
[Apple, Orange1, Banana, grape]
次はgrowableで固定長(false)を指定する。
void main() {
try {
final mapTest = <String, int>{
"Apple": 0,
"Orange1": 1,
"Banana": 2,
"grape": 3,
"Orange2": 4
};
final key = mapTest.keys.toList(growable: false);
key.removeLast();
print(key);
} catch (e) {
print(e.toString());
}
}
実行結果。
固定長なので、配列要素を削除すると例外を返す。
Unsupported operation: Cannot remove from a fixed-length list
最後はmap型の値を配列にする。
void main() {
try {
final mapTest = <String, int>{
"Apple": 0,
"Orange1": 1,
"Banana": 2,
"grape": 3,
"Orange2": 4
};
final value = mapTest.values.toList(growable: false);
print(value);
} catch (e) {
print(e.toString());
}
}
実行結果。
Map型の値が配列として返る。
[0, 1, 2, 3, 4]
コメント