РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
152 of 723 menu

Конструктор from

Конструктор from класса Map создает новую Map, копируя все ключи и значения из переданной Map. В первый параметр мы передаем исходную Map, из которой нужно скопировать данные. Второй параметр необязательный - это функция преобразования ключей и значений, которая позволяет изменить элементы при копировании.

Новая Map является независимой копией исходной: изменение одной из них не влияет на другую. Однако если значения являются объектами, они копируются по ссылке.

Синтаксис

Map.from(other) Map.from(other, transform)

Пример

Давайте создадим новую Map на основе существующей и выведем обе:

void main() { Map<String, int> original = {'a': 1, 'b': 2, 'c': 3}; Map<String, int> copy = Map.from(original); print(original); print(copy); }

Результат выполнения кода:

{a: 1, b: 2, c: 3} {a: 1, b: 2, c: 3}

Пример

Давайте проверим, что новая Map является независимой копией - добавим элемент в копию и выведем обе Map:

void main() { Map<String, int> original = {'a': 1, 'b': 2}; Map<String, int> copy = Map.from(original); copy['c'] = 3; print(original); print(copy); }

Результат выполнения кода:

{a: 1, b: 2} {a: 1, b: 2, c: 3}

Пример

Давайте используем функцию преобразования, чтобы увеличить все значения в два раза при копировании:

void main() { Map<String, int> original = {'a': 1, 'b': 2, 'c': 3}; Map<String, int> res = Map.from( original, (key, value) => MapEntry(key, value * 2) ); print(res); }

Результат выполнения кода:

{a: 2, b: 4, c: 6}

Смотрите также

  • конструктор of,
    который создает Map из пар ключ-значение
  • конструктор fromEntries,
    который создает Map из коллекции MapEntry
  • конструктор fromIterable,
    который создает Map из итерируемого объекта
  • класс Map,
    который представляет коллекцию пар ключ-значение
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить