Метод update
- K key,
- V update(
- V value
- {V ifAbsent( )?}
override
Обновляет значение для предоставленного key.
Возвращает новое значение, связанное с ключом.
Если ключ присутствует, вызывает update со текущим значением и сохраняет новое значение в карте.
Если ключ отсутствует и ifAbsent предоставлен, вызывает ifAbsent и добавляет ключ со возвращённым значением в карту.
Если ключ отсутствует, ifAbsent должен быть предоставлен.
final planetsFromSun = <int, String>{1: 'Mercury', 2: 'unknown',
3: 'Earth'};
// Update value for known key value 2.
planetsFromSun.update(2, (value) => 'Venus');
print(planetsFromSun); // {1: Mercury, 2: Venus, 3: Earth}
final largestPlanets = <int, String>{1: 'Jupiter', 2: 'Saturn',
3: 'Neptune'};
// Key value 8 is missing from list, add it using [ifAbsent].
largestPlanets.update(8, (value) => 'New', ifAbsent: () => 'Mercury');
print(largestPlanets); // {1: Jupiter, 2: Saturn, 3: Neptune, 8: Mercury} Реализация
V update(K key, V update(V value), {V Function()? ifAbsent}) {
if (this.containsKey(key)) {
return this[key] = update(this[key] as V);
}
if (ifAbsent != null) {
return this[key] = ifAbsent();
}
throw ArgumentError.value(key, "key", "Key not in map.");
}
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-collection/MapMixin/update.html