0Pricing
Dart Academy · Урок

Перебор записей, ключей и значений

Обход отображения и использование putIfAbsent

«Перебор записей, ключей и значений» — бесплатный урок Dart Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Dart Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Dart Academy содержит 4 уроков всего.

Перебор карты

Иногда нужно посетить каждую пару в карте. Dart предлагает несколько удобных способов перебрать её. 🚶

Только ключи

Свойство keys возвращает перебираемую последовательность всех ключей. Перебирайте её, когда Вас интересуют только обозначения.

var m = {'a': 1, 'b': 2};
for (var k in m.keys) {
  print(k);
}

Только значения

Свойство values возвращает перебираемую последовательность всех значений, полностью игнорируя ключи.

var m = {'a': 1, 'b': 2};
for (var v in m.values) {
  print(v);
}

Пары через entries

Свойство entries возвращает объекты MapEntry, чтобы Вы могли одновременно получить и ключ, и его значение.

for (var e in m.entries) {
  print(e.key);
  print(e.value);
}

Сокращённая запись forEach

Метод forEach напрямую передаёт Вам каждый ключ и значение, поэтому обработка каждой пары записывается очень понятно.

m.forEach((key, value) {
  print('$key: $value');
});

Знакомство с putIfAbsent

Используйте putIfAbsent, чтобы установить ключ только в том случае, если он отсутствует. Существующие ключи не изменяются.

var m = {'a': 1};
m.putIfAbsent('b', () => 2);

Чем полезен putIfAbsent

Функция значения в putIfAbsent выполняется только при необходимости, поэтому для уже существующих ключей не выполняется лишняя работа.

m.putIfAbsent('a', () => expensive());

Обновление значения

Метод update изменяет существующий ключ с помощью функции — это особенно удобно для счётчиков и подсчёта итогов.

var counts = {'a': 1};
counts.update('a', (v) => v + 1);

update с запасным значением

Передайте ifAbsent в update, чтобы новый ключ получил начальное значение, а не вызвал ошибку.

counts.update('z', (v) => v + 1,
  ifAbsent: () => 1);

Изменение формы с помощью map

Метод map преобразует каждую запись в новую пару и возвращает новую карту, не изменяя исходную.

var doubled = m.map((k, v) =>
  MapEntry(k, v * 2));

Порядок соответствует добавлению

Обычная карта запоминает порядок добавления ключей, поэтому при переборе пары посещаются в том же надёжном порядке.

Быстрая проверка

Какое свойство в одном переборе предоставляет одновременно и ключ, и значение?

Повторение

Отлично! Перебирайте keys, значения или entries, а для удобного управления парами используйте putIfAbsent и update. 🎉

Часто задаваемые вопросы

Урок «Перебор записей, ключей и значений» бесплатный?

Да — полный текст урока «Перебор записей, ключей и значений» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Dart Academy, подпишись на CoddyKit PRO. Курс Dart Academy содержит 4 уроков всего.

Чему я научусь в уроке «Перебор записей, ключей и значений»?

Обход отображения и использование putIfAbsent Ты практикуешь Dart Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Dart Academy?

Предыдущий опыт не требуется. Dart Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Перебор записей, ключей и значений»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Dart Academy?

Да. Каждый урок Dart Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Множества и гарантированная уникальность
  2. Операции над множествами: объединение, пересечение, разность
  3. Отображения как хранилища пар «ключ — значение»
  4. Перебор записей, ключей и значений
← Назад к Dart Academy