РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
139 of 723 menu

Каскад ?..

Оператор ?.. (null-aware cascade) работает так же, как и обычный каскадный оператор .., но с одной важной особенностью: если объект, к которому применяется каскад, равен null, то вся цепочка вызовов пропускается и не выполняется. Это позволяет безопасно работать с объектами, которые могут быть null, без предварительной проверки. Оператор возвращает сам объект (или null, если объект был null), что позволяет продолжать цепочку вызовов.

Синтаксис

obj?..method1() ?..method2() ?..property = value;

Пример

Давайте рассмотрим работу оператора ?.. на объекте, который не равен null:

class MyClass { String value = ''; void setValue(String v) { value = v; } void printValue() { print(value); } } void main() { MyClass? obj = MyClass(); obj?..setValue('abcde') ?..printValue(); }

Результат выполнения кода:

"abcde"

Пример

Теперь рассмотрим случай, когда объект равен null. В этом случае вся цепочка каскадных вызовов будет пропущена:

class MyClass { String value = ''; void setValue(String v) { value = v; } void printValue() { print(value); } } void main() { MyClass? obj = null; obj?..setValue('abcde') ?..printValue(); print('Done'); }

Результат выполнения кода:

"Done"

Пример

Давайте вернем результат каскада и убедимся, что оператор ?.. возвращает исходный объект:

class MyClass { String value = ''; void setValue(String v) { value = v; } } void main() { MyClass? obj = MyClass(); MyClass? res = obj?..setValue('12345'); print(res?.value); }

Результат выполнения кода:

"12345"

Смотрите также

  • оператор ?.,
    который безопасно обращается к методам и свойствам
  • оператор ?..,
    который выполняет каскад с проверкой на null
  • оператор ??,
    который возвращает значение по умолчанию
  • оператор !,
    который утверждает, что значение не null
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить