Метод putIfAbsent
Метод putIfAbsent класса Map добавляет новую пару
ключ-значение в словарь, но только в том случае, если
указанного ключа в словаре еще нет. Если ключ уже
существует, метод возвращает текущее значение и
не изменяет словарь. В первый параметр мы передаем
ключ, который нужно проверить или добавить. Во второй
параметр передаем функцию, которая возвращает значение
для добавления, если ключ отсутствует.
Синтаксис
map.putIfAbsent(key, ifAbsent)
Пример
Давайте добавим новую пару в словарь, если ключа
'c' в нем еще нет:
void main()
{
Map<String, int> map = {'a': 1, 'b': 2};
map.putIfAbsent('c', () => 3);
print(map);
}
Результат выполнения кода:
{a: 1, b: 2, c: 3}
Пример
Давайте попробуем добавить пару с ключом
'a', который уже существует в словаре:
void main()
{
Map<String, int> map = {'a': 1, 'b': 2};
int res = map.putIfAbsent('a', () => 100);
print(res);
print(map);
}
Результат выполнения кода:
1
{a: 1, b: 2}
Как видите, значение ключа 'a' не изменилось
на 100, а метод вернул текущее значение
1.
Пример
Давайте заполним словарь значениями по умолчанию для нескольких отсутствующих ключей:
void main()
{
Map<String, int> map = {'a': 1};
map.putIfAbsent('b', () => 2);
map.putIfAbsent('c', () => 3);
map.putIfAbsent('d', () => 4);
print(map);
}
Результат выполнения кода:
{a: 1, b: 2, c: 3, d: 4}
Смотрите также
-
класс
Map,
который представляет собой словарь -
метод
update,
который обновляет значение по ключу -
метод
containsKey,
который проверяет наличие ключа -
метод
addAll,
который добавляет все пары из другого словаря