Dart Academy · Урок

Spread и spread с учётом null

Встраивание одной коллекции в другую

Урок 3 из 413 шагов

«Spread и spread с учётом null» — бесплатный урок Dart Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Dart Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Dart Academy содержит 4 уроков всего.

Объединение коллекций

Часто требуется добавить все элементы одного списка в другой. Оператор разворачивания в Dart вставляет целую коллекцию одним действием.

Знакомство с тремя точками

Оператор разворачивания — это три точки перед коллекцией внутри литерала списка, множества или отображения. Её элементы сразу добавляются внутрь.

var more = [4, 5];
var all = [1, 2, 3, ...more];

Что создаёт разворачивание

Разворачивание копирует исходные элементы в новую коллекцию. В результате получается новый список, а исходная коллекция остаётся без изменений.

Разворачивание в любом месте

Разворачивание можно поместить в начало, середину или конец, а также сочетать несколько разворачиваний с обычными элементами в одном литерале.

var x = [0, ...a, 9, ...b];

Проблема отсутствующей коллекции

Если разворачиваемая коллекция отсутствует, обычное разворачивание вызывает ошибку. Это рискованно, когда источник может ещё не существовать.

Разворачивание с проверкой отсутствия

Добавьте знак вопроса для разворачивания с проверкой отсутствия, записываемого как знак вопроса, а затем три точки. Отсутствующий источник просто не добавляет элементов.

var all = [1, 2, ...?maybeNull];

Пропускает, но не вызывает сбой

При разворачивании с проверкой отсутствия коллекция без значения просто пропускается. Остальные элементы сохраняются, и ошибка во время выполнения не возникает.

Разворачивание работает с множествами

Разворачивание предназначено не только для списков. Внутри литерала множества оно также добавляет элементы, а повторы удаляются, чтобы сохранить уникальность множества.

var s = {1, 2, ...other};

Разворачивание работает с отображениями

Одно отображение можно развернуть в другое, чтобы объединить записи. Побеждают ключи, добавленные позже, поэтому разворачивание аккуратно заменяет предыдущие значения.

var m = {'a': 1, ...defaults};

Разворачивание и addAll

Разворачивание создаёт новую коллекцию в литерале, а addAll изменяет уже существующую. Выбирайте разворачивание, когда нужен новый результат.

Почему это легко читать

Разворачивание делает намерение очевидным: в одном аккуратном литерале сразу видно, из каких частей состоит новая коллекция. 📦

Быстрая проверка

Что происходит при разворачивании с проверкой отсутствия для коллекции без значения?

Итоги

Разворачивание (...) вставляет коллекцию в литерал, а разворачивание с проверкой отсутствия (...?) безопасно пропускает отсутствующий источник. Это работает со списками, множествами и отображениями. 🎯

Можно начать бесплатно

Изучай Dart с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
30
Уроки
120

Часто задаваемые вопросы

Урок «Spread и spread с учётом null» бесплатный?

Да — полный текст урока «Spread и spread с учётом null» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Dart Academy, подпишись на CoddyKit PRO. Курс Dart Academy содержит 4 уроков всего.

Чему я научусь в уроке «Spread и spread с учётом null»?

Встраивание одной коллекции в другую Ты практикуешь Dart Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Dart Academy?

Предыдущий опыт не требуется. Dart Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Spread и spread с учётом null»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Dart Academy?

Да. Каждый урок Dart Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Оператор каскада (..)
  2. Каскады с сокращением при null (?..)
  3. Spread и spread с учётом null
  4. if и for в коллекциях
← Назад к Dart Academy