Dart Academy · Урок

Преобразование с помощью map, where и toList

Изменение формы списков методами итерируемых объектов

Урок 4 из 413 шагов

«Преобразование с помощью 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 — локальная установка не требуется.

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

  1. Создание списков и индексация
  2. Добавление, удаление и обновление элементов
  3. Поиск и сортировка списков
  4. Преобразование с помощью map, where и toList
← Назад к Dart Academy