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 — локальная установка не требуется.
Все уроки этого курса
- Оператор каскада (..)
- Каскады с сокращением при null (?..)
- Spread и spread с учётом null
- if и for в коллекциях