Оператор каскада (..)
Цепочка вызовов для одного объекта
«Оператор каскада (..)» — бесплатный урок Dart Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Dart Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Dart Academy содержит 4 уроков всего.
Проблема повторения
При настройке одного объекта часто приходится повторять его имя в каждой строке. Каскад в Dart позволяет убрать это повторение и сосредоточиться на самой работе.
Знакомство с двумя точками
Каскадный оператор состоит из двух точек. Он вызывает метод или задаёт поле объекта, не завершая цепочку.
var b = StringBuffer()
..write('Hi')
..write('!');Он возвращает объект
В этом и заключается особенность: каскад всегда возвращает исходный объект, а не результат метода. Поэтому цепочку можно продолжать сколько угодно.
Задание полей с помощью каскадов
С помощью каскада можно не только вызывать методы, но и задавать поля. Каждая строка настраивает ещё одну часть того же нового объекта.
var p = Paint()
..color = blue
..width = 4;До каскадов
Без каскадов объект сначала присваивается переменной, а затем эта переменная указывается в каждой отдельной строке. Это работает, но выглядит многословно.
var b = StringBuffer();
b.write('a');
b.write('b');После каскадов
С каскадами та же настройка превращается в одно аккуратное выражение. Имя объекта указывается один раз, а каждый шаг выполняется относительно него. ✨
var b = StringBuffer()
..write('a')
..write('b');Каскад — это выражение
Поскольку вся цепочка является одним выражением, её можно сразу присвоить переменной. В результате получается готовый к использованию настроенный объект.
Сочетание вызовов и присваиваний
В одном каскаде можно свободно сочетать вызовы методов и присваивания полей. Dart применяет каждую строку к одному и тому же объекту сверху вниз.
var list = []
..add(1)
..length;Следите за точкой с запятой
Каскадная цепочка остаётся одним оператором, поэтому точка с запятой ставится только в самом конце. Если поставить её в середине, цепочка разделится на две части.
Где каскады особенно полезны
Каскады идеально подходят для объектов-построителей и конфигурационных объектов, например для StringBuffer или виджета Flutter, которому нужно быстро задать несколько параметров.
Каскад и цепочка методов
В обычной цепочке каждый метод должен возвращать подходящий объект. Каскаду это не важно, поскольку он всегда возвращает исходный объект.
Быстрая проверка
Что возвращает каскадный оператор?
Итоги
Каскад (..) настраивает один объект в нескольких строках, возвращает этот объект и завершается одной точкой с запятой. Настройка становится чище, а повторений — меньше. 🎯
Часто задаваемые вопросы
Урок «Оператор каскада (..)» бесплатный?
Да — полный текст урока «Оператор каскада (..)» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Dart Academy, подпишись на CoddyKit PRO. Курс Dart Academy содержит 4 уроков всего.
Чему я научусь в уроке «Оператор каскада (..)»?
Цепочка вызовов для одного объекта Ты практикуешь Dart Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Dart Academy?
Предыдущий опыт не требуется. Dart Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Оператор каскада (..)»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Dart Academy?
Да. Каждый урок Dart Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Оператор каскада (..)
- Каскады с сокращением при null (?..)
- Spread и spread с учётом null
- if и for в коллекциях