Оператор match
Часть раздела Основы путешествия по GDScript на Coddy. Урок 30 из 92.
Инструкция match сравнивает одно значение со списком шаблонов и выполняет блок первого совпавшего шаблона. Она заменяет длинную цепочку if/elif, в которой сравнивается одна и та же переменная:
var day := 3
match day:
1:
print("Monday")
2, 3:
print("Midweek")
_:
print("Other day")Это выводит Midweek.
- Каждый шаблон заканчивается двоеточием, а его код имеет отступ на один уровень больше
- Несколько значений, разделённых запятыми, используют один блок:
2, 3: _— это подстановочный символ: он соответствует любому значению, поэтому его указывают последним, какelse
Выполняется только первый совпавший блок. GDScript не переходит к следующему шаблону, поэтому писать break не нужно. Если ни один шаблон не совпадает и нет _, ничего не выполняется.
Шаблоны тоже могут быть строками:
var weapon := "bow"
match weapon:
"sword":
print("Melee")
"bow", "crossbow":
print("Ranged")
_:
print("Unknown")Задание
ЛегкоПеременная season хранит название времени года. Напиши оператор match, который выводит занятие для этого времени года:
"Spring": выведиGo hiking"Summer": выведиGo swimming"Fall"или"Autumn": выведиGo apple picking(один шаблон с обоими значениями)"Winter": выведиGo skiing- Любое другое значение: выведи
Stay home
Напиши все варианты. Если season задано значением "Autumn", вывод будет таким:
Go apple pickingПопробуйте сами
extends Node
func _ready():
var season := "Autumn"
# Напишите оператор match ниже
pass
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыЦелочисленное делениеОператор остатка от деленияСокращённая запись арифметических операцийПовторение — простая математикаОператоры сравнения7Основы ввода и вывода
ВыводВывод с переменнымиФорматирование строкВводПреобразование типовПовторение — до 120Повторение — истина или ложь5Операторы, часть 2
Логические операторы, часть 1Логические операторы, часть 2Повторение: простая логикаЛогические операторы, часть 3Тернарный оператор8Калькулятор для разделения счёта
Приветственное сообщениеВвод данных11FizzBuzz с неожиданным поворотом
Обзор игрыФункция FizzBuzz14Массивы: продвинутый уровень
Срезы массивовОператоры последовательностейПринадлежностьСортировка и обратный порядок3Переменные. Часть 2
Объявление типаВывод типаКонстантыПовторение — инициализация переменныхПреобразование типов6Принятие решений
Оператор ifЕсли — иначеПовторение: простой калькуляторВложенные условия if — elseОператор match9Циклы
Цикл forЦикл whileBreakContinueПовторение — факториалФункция rangeВложенный циклПовторение — динамический вводПотренируйтесь самостоятельно: Онлайн-компилятор GDScript