0Pricing
Dart Academy · Урок

if и for в коллекциях

Условное создание списков и создание списков в циклах

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

Логика внутри литералов

Иногда содержимое списка зависит от условия. Dart позволяет поместить условие прямо внутрь литерала коллекции и собрать её в одном месте.

Условие в коллекции

Условие в коллекции добавляет элемент только тогда, когда его условие истинно. Если условие не выполнено, это место ничего не добавляет.

var nav = ['Home', if (loggedIn) 'Profile'];

Условие с альтернативой

Можно добавить альтернативу, чтобы выбрать один из двух элементов. В коллекцию всегда попадает только один из них, но никогда не оба.

var tags = [if (vip) 'Gold' else 'Standard'];

Фигурные скобки не нужны

В отличие от обычного условного оператора, условие в коллекции не требует фигурных скобок и точек с запятой. Оно создаёт элемент, а не выполняет блок.

Цикл в коллекции

Цикл в коллекции создаёт элементы внутри литерала, выполняя повторения. На каждом шаге добавляется результат тела цикла.

var doubled = [for (var n in nums) n * 2];

Как преобразование, но внутри литерала

Цикл в коллекции часто заменяет вызов преобразования, когда Вы уже находитесь внутри литерала. Для простых преобразований такой вариант может читаться понятнее.

Сочетание условия и цикла

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

var evens = [for (var n in nums) if (n.isEven) n];

Работает не только со списками

Условие и цикл в коллекции также работают в литералах множеств и отображений. Один и тот же удобный синтаксис подходит для всех трёх видов коллекций.

var m = {for (var u in users) u.id: u.name};

Сочетание с разворачиванием

Их можно сочетать с разворачиванием: добавить одни элементы напрямую, развернуть другую коллекцию и добавить условия — всё в одном литерале.

var x = [...base, if (extra) 'plus'];

Почему это лучше последующей сборки

Предварительное создание коллекции сохраняет её декларативность. Не нужно создавать пустой список и добавлять в него элементы отдельными операторами.

Отлично подходит для списков интерфейса

Особенно полезно это в Flutter, где список дочерних элементов часто показывает виджеты по условию или на основе данных. Литерал остаётся чистым и понятным. 🧩

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

Что делает условие в коллекции, если его условие ложно и альтернативы нет?

Итоги

Условие в коллекции добавляет элементы по условию, а цикл в коллекции создаёт их в цикле прямо внутри литералов списков, множеств и отображений. 🎯

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

Урок «if и for в коллекциях» бесплатный?

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

Чему я научусь в уроке «if и for в коллекциях»?

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

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

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

Сколько времени занимает урок «if и for в коллекциях»?

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

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

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

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

  1. Оператор каскада (..)
  2. Каскады с сокращением при null (?..)
  3. Spread и spread с учётом null
  4. if и for в коллекциях
← Назад к Dart Academy