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

Оператор spread null

Оператор ...? (spread null) позволяет вставлять элементы коллекции, которая может иметь значение null, в другую коллекцию. Если коллекция равна null, то оператор просто не добавит ничего, и ошибка не возникнет. Без знака вопроса оператор ... при попытке развернуть null выбросит исключение. Оператор применяется к спискам, множествам и словарям.

Синтаксис

[...?collection]

Пример

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

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

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

[1, 2, 3]

Пример

Давайте сравним поведение оператора ...? с обычным оператором ... на значении null:

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

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

[1, 2]

А теперь попробуем использовать оператор ... без знака вопроса:

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

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

Unhandled exception: Null check operator used on a null value

Пример

Давайте развернём непустой список с помощью оператора ...?:

void main() { List<String>? items = ['b', 'c', 'd']; List<String> res = ['a', ...?items, 'e']; print(res); }

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

[a, b, c, d, e]

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

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