Преобразование с помощью map, where и toList
Изменение формы списков методами итерируемых объектов
«Преобразование с помощью map, where и toList» — бесплатный урок Dart Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Dart Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Dart Academy содержит 4 уроков всего.
Преобразование списков
Вместо ручного перебора Dart позволяет преобразовывать списки с помощью удобных методов для последовательностей. Вы описываете результат, а Dart создаёт его. ✨
map преобразует элементы
Метод map запускает функцию для каждого элемента и создаёт новую последовательность результатов, не изменяя исходный список.
var nums = [1, 2, 3];
var doubled = nums.map((n) => n * 2);map возвращает последовательность
Обратите внимание: map возвращает последовательность, а не список. Она вычисляется лениво: вычисления начинаются только при чтении значений.
toList создаёт список
Превратите любую последовательность в настоящий список с помощью toList. Это запускает вычисления и даёт Вам список, элементы которого можно получать по индексу.
var result = nums.map((n) => n * 2).toList();where фильтрует элементы
Метод where оставляет только элементы, прошедшие Вашу проверку, а остальные отбрасывает. Это основной инструмент фильтрации.
var evens = nums.where((n) => n.isEven);Объединение map и where
Удобно объединяйте шаги. Сначала where фильтрует элементы, затем map преобразует их — код читается как ясное описание работы с данными.
var out = nums.where((n) => n > 1).map((n) => n * 10);Всегда завершайте цепочку вызовом toList
После объединения вызовите toList, чтобы зафиксировать результат. Если забыть об этом, останется лениво вычисляемая последовательность, которая пересчитывается при каждом обращении.
var finalList = out.toList();Исходные данные не меняются
Эти методы никогда не изменяют исходный список, а возвращают новые данные. Исходный nums остаётся таким же, каким был изначально.
print(nums); // [1, 2, 3]Изменение типа
map может полностью изменить тип данных. Здесь список чисел за один понятный шаг превращается в список строковых меток.
var labels = nums.map((n) => 'item $n').toList();expand для объединения
Используйте expand, когда каждый элемент превращается в несколько. Метод сначала выполняет преобразование, а затем объединяет получившиеся части в одну последовательность.
var pairs = nums.expand((n) => [n, n]).toList();Быстрые преобразования
Среди других удобных завершающих методов — join, который объединяет элементы в одну строку, идеально подходящую для отображения списка пользователю.
print(nums.join(', ')); // 1, 2, 3Быстрая проверка
Вы применяете map к списку, но не вызываете toList. Что Вы получите?
Итоги
Вы профессионально преобразуете списки: используете map для изменения элементов, where для фильтрации, а toList — для завершения преобразования. Цепочки операций всегда лучше ручных циклов. 🚀
Изучай Dart с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 30
- Уроки
- 120
Часто задаваемые вопросы
Урок «Преобразование с помощью map, where и toList» бесплатный?
Да — полный текст урока «Преобразование с помощью map, where и toList» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Dart Academy, подпишись на CoddyKit PRO. Курс Dart Academy содержит 4 уроков всего.
Чему я научусь в уроке «Преобразование с помощью map, where и toList»?
Изменение формы списков методами итерируемых объектов Ты практикуешь Dart Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Dart Academy?
Предыдущий опыт не требуется. Dart Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Преобразование с помощью map, where и toList»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Dart Academy?
Да. Каждый урок Dart Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Создание списков и индексация
- Добавление, удаление и обновление элементов
- Поиск и сортировка списков
- Преобразование с помощью map, where и toList