Dart Mapのキーを指定して値を更新する

Dartで、Mapのキーを指定して値を更新するコードを記述してます。「update」メソッドを使用してキーと値を指定することで可能です。存在しないキーを指定するとエラーが発生します。
環境
- OS windows11 home
- Dart 2.18.4
Mapのキーを指定して値を更新
Mapのキーを指定して値を更新するには
1. 「update」でキー名と値を指定
することで可能です。
Map.update(キー名, (value) => 値);
実際に、使用して追加してみます。
void main() {
var map = <int, String>{
1: 'one',
2: 'two',
3: 'three',
};
map.update(1, (v) => 'foo');
map.update(2, (v) => 'hoge');
print(map); // {1: foo, 2: hoge, 3: three}
}
実行結果を見ると、指定したキーの値が更新されていることが確認できます。

存在しないキーを指定
存在しないキーを指定すると、エラーが発生します。
void main() {
var map = <int, String>{
1: 'one',
2: 'two',
3: 'three',
};
map.update(5, (v) => 'foo');
print(map);
// Unhandled exception:
// Invalid argument (key): Key not in map.: 5
// #0 MapMixin.update (dart:collection/maps.dart:154:5)
// #1 main (file:///c:/sample/main.dart:8:7)
// #2 _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:297:19)
// #3 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)
}
「ifAbsent」を使用するとキーが存在しない場合に、値を指定して更新ではなく追加することが可能です。
void main() {
var map = <int, String>{
1: 'one',
2: 'two',
3: 'three',
};
map.update(5, (v) => 'foo', ifAbsent: () => null);
print(map); //{1: one, 2: two, 3: three, 5: null}
}
-
前の記事
PostgreSQL テーブルの制約を確認する 2023.08.25
-
次の記事
CentOS アプリを移動させるショートカットキー 2023.08.25
コメントを書く