Dart ListクラスのlastWhere()メソッドについてメモ書き。
lastWhere()メソッドは第1引数で指定した条件を満たす、最後の配列要素を返す。
第2引数は名前付きオプション引数で、「orElse:」の後に条件を満たさなかった場合の処理を記述する。第2引数を省略した場合、StateErrorクラスを返す。
コーディングでlastWhere()を確認。
void main() {
try {
final listTest = <String>[
"Apple",
"Orange",
"Banana1",
"grape",
"Banana2",
];
final last =
listTest.lastWhere((element) => RegExp("Banana").hasMatch(element));
print(last);
} catch (e) {
print(e.toString());
}
}
実行結果。
“Banana”を含む末尾の配列要素を返す。
Banana2
次は存在しない条件を指定。
void main() {
try {
final listTest = <String>[
"Apple",
"Orange",
"Banana1",
"grape",
"Banana2",
];
final last = listTest.lastWhere(
(element) => RegExp("Rice").hasMatch(element),
);
print(last);
} catch (e) {
print(e.toString());
}
}
実行結果。
配列内に”Rice”が存在しないのでStateErrorを返す。
Bad state: No element
第2引数orElseで条件にマッチしなかった場合の処理を追加。
void main() {
try {
final listTest = <String>[
"Apple",
"Orange",
"Banana1",
"grape",
"Banana2",
];
final last = listTest.lastWhere(
(element) => RegExp("Rice").hasMatch(element),
orElse: () => "マッチする文字列は存在しません",
);
print(last);
} catch (e) {
print(e.toString());
}
}
実行結果。
第2引数の処理が実行される。
マッチする文字列は存在しません
コメント