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

Конструкция if-case

Конструкция if-case в Dart позволяет совместить обычную проверку условия с сопоставлением с образцом (pattern matching). В первом параметре указывается значение или выражение, которое нужно проверить, а во втором - образец, с которым выполняется сопоставление. Если образец совпадает со значением, выполняется тело ветки. При этом переменные, объявленные внутри образца, становятся доступны внутри блока кода.

Конструкция if-case особенно удобна, когда нужно проверить структуру данных, тип значения или извлечь отдельные элементы из коллекции без написания громоздких условий.

Синтаксис

if (value case pattern) { // code }

Пример

Давайте проверим, является ли значение типом int, и выведем его на экран:

void main() { var value = 42; if (value case int number) { print('It is an integer: $number'); } }

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

"It is an integer: 42"

Пример

Давайте проверим, что список содержит ровно три элемента, и извлечём их:

void main() { var list = [1, 2, 3]; if (list case [int a, int b, int c]) { print('Sum: ${a + b + c}'); } }

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

"Sum: 6"

Пример

Давайте используем if-case вместе с else, чтобы обработать случай, когда образец не совпал:

void main() { var value = 'abcde'; if (value case int number) { print('Number: $number'); } else { print('Not a number'); } }

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

"Not a number"

Пример

Давайте извлечём поля из записи (record) с помощью образца:

void main() { var point = (1, 2); if (point case (int x, int y)) { print('x: $x, y: $y'); } }

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

"x: 1, y: 2"

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

  • конструкция if,
    которая выполняет ветку по условию
  • конструкция else,
    которая выполняет ветку при ложном условии
  • конструкция switch,
    которая выбирает ветку по образцу
  • раздел patterns,
    который описывает образцы в Dart
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить