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

Оператор ??=

Оператор ??= присваивает значение переменной только тогда, когда её текущее значение равно null. Если переменная уже содержит какое-либо значение, отличное от null, то присваивание не выполняется, а переменная остаётся без изменений. В левой части оператора указывается переменная, в правой - значение, которое будет присвоено, если переменная равна null. Оператор возвращает итоговое значение переменной после выполнения операции.

Синтаксис

variable ??= value

Пример

Давайте присвоим переменной значение, когда она равна null:

void main() { String? str = null; str ??= 'abcde'; print(str); }

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

"abcde"

Пример

А теперь давайте попробуем присвоить значение переменной, которая уже содержит строку:

void main() { String? str = 'abcde'; str ??= '12345'; print(str); }

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

"abcde"

Как видите, присваивание не произошло, так как переменная не была равна null.

Пример

Оператор ??= возвращает итоговое значение переменной, поэтому его можно использовать в выражении:

void main() { String? str = null; String res = str ??= 'abcde'; print(res); }

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

"abcde"

Пример

Давайте применим оператор ??= к числовой переменной:

void main() { int? num = null; num ??= 12345; print(num); }

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

12345

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

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