Перебор записей, ключей и значений
Обход отображения и использование 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 — локальная установка не требуется.
Все уроки этого курса
- Множества и гарантированная уникальность
- Операции над множествами: объединение, пересечение, разность
- Отображения как хранилища пар «ключ — значение»
- Перебор записей, ключей и значений