0Pricing
Dart Academy · Урок

Шаблоны switch и защитные условия

Сопоставление структур и добавление условий when

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

switch встречается с шаблонами

Современный Dart позволяет сопоставлять в switch не только константы, но и шаблоны. Каждый вариант может проверить форму значения и сразу распаковать его. 🔀

Сопоставление формы записи

Вариантом может быть шаблон записи. Если значение соответствует этой форме, выполняется вариант, а его поля связываются с переменными.

switch (point) {
  case (0, 0): print('origin');
}

Связывание во время сопоставления

Шаблоны могут захватывать значения во время сопоставления. Назовите позиции — и получите готовые к использованию поля внутри тела варианта.

switch (p) {
  case (var x, var y): print(x + y);
}

Вариант с подстановочным символом

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

switch (n) {
  case 1: print('one');
  case _: print('other');
}

Что такое защитное условие

Защитное условие добавляет к варианту условие с помощью ключевого слова when. Вариант срабатывает только тогда, когда шаблон совпал и проверка дала положительный результат.

case (var x, var y) when x == y:
  print('diagonal');

Защитные условия уточняют совпадение

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

Порядок определяет результат

Варианты проверяются сверху вниз. Побеждает первый совпавший вариант, поэтому помещайте самые конкретные шаблоны перед более общими.

switch как выражение

Выражение switch возвращает значение. Варианты используют стрелку, а весь switch вычисляется в один результат.

var label = switch (n) {
  1 => 'one',
  _ => 'many',
};

break не нужен

Варианты с шаблонами не проваливаются в следующий вариант, поэтому break писать не нужно. Каждый вариант самодостаточен и аккуратно оформлен.

Шаблоны с логическим «или»

Объединяйте шаблоны с помощью ||, чтобы сопоставить несколько форм в одном варианте. Обрабатывайте связанные значения вместе, не повторяя тела вариантов.

case 1 || 2 || 3:
  print('small');

Полнота и безопасность

Для запечатанных типов компилятор проверяет, что switch является исчерпывающим. Если пропустить вариант, Dart предупредит Вас ещё до запуска программы.

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

Какое ключевое слово добавляет дополнительное условие к шаблону варианта switch?

Итоги: шаблоны и защитные условия

У Вас получилось! 🎯 switch может сопоставлять шаблоны, захватывать поля, уточнять совпадения с помощью защитных условий when и возвращать значения как выражение.

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

Урок «Шаблоны switch и защитные условия» бесплатный?

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

Чему я научусь в уроке «Шаблоны switch и защитные условия»?

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

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

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

Сколько времени занимает урок «Шаблоны switch и защитные условия»?

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

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

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

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

  1. Записи: лёгкие кортежи
  2. Позиционные и именованные поля записей
  3. Деструктуризация с помощью шаблонов
  4. Шаблоны switch и защитные условия
← Назад к Dart Academy