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

Nullable-тип ?

Знак вопроса ? после типа данных превращает обычный тип в nullable-тип. Это означает, что переменная такого типа может хранить как значение своего типа, так и значение null. Без знака ? переменная не может принимать значение null, и попытка присвоить его приведет к ошибке компиляции.

Nullable-типы являются частью системы null safety в Dart, которая помогает избежать ошибок, связанных с неожиданным значением null.

Синтаксис

Type? variableName;

Пример

Давайте объявим переменную типа int? и присвоим ей значение null:

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

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

null

Пример

Давайте присвоим nullable-переменной обычное значение:

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

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

5

Пример

Давайте попробуем присвоить null переменной без знака ? и увидим ошибку компиляции:

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

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

Error: A value of type 'Null' can't be assigned to a variable of type 'int'.

Пример

Давайте объявим переменную типа String? и проверим ее на null с помощью оператора ==:

void main() { String? str = null; if (str == null) { print('str is null'); } else { print(str); } }

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

"str is null"

Пример

Давайте используем nullable-тип в списке:

void main() { List<int?> res = [1, null, 3, null, 5]; print(res); }

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

[1, null, 3, null, 5]

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

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