Условия в шаблонах
Часть раздела Логика и потоки выполнения путешествия по GDScript на Coddy. Урок 7 из 78.
Условие-ограничитель добавляет условие к шаблону. Напишите when и условие после шаблона: шаблон совпадает, только если значение соответствует шаблону и условие имеет значение true. Условия-ограничители существуют начиная с Godot 4.4.
var hp := 15
match hp:
0:
print("Defeated")
var h when h < 20:
print("Low health: ", h)
_:
print("Healthy")Low health: 15В GDScript нет шаблонов диапазонов, таких как 1..10. Эту задачу решает шаблон связывания с условием: var h when h < 20: соответствует любому значению меньше 20 и присваивает ему имя h.
Если условие-ограничитель равно false, match переходит к следующему шаблону. Шаблоны проверяются сверху вниз, поэтому порядок определяет, какой блок выполнится:
var temp := 32
match temp:
var t when t <= 0:
print("Freezing")
var t when t < 15:
print("Cold")
var t when t < 30:
print("Warm")
_:
print("Hot")HotДля второго шаблона не требуется t > 0: температура 0 или ниже уже подошла под первый шаблон. В условии-ограничителе можно использовать любое условие, другие переменные, а также and или or; его можно добавить к любому шаблону: 5 when hard_mode: соответствует значению 5, только если hard_mode равно true.
Задание
ЛегкоПрограмма считывает возраст как целое число в age. Используй оператор match с защитными условиями, чтобы вывести возрастную группу:
0–12:Child13–19:Teenager20–64:Adult65–120:Senior- Любое другое число:
Invalid age
Каждый диапазон включает обе границы. Для входного значения 15 результат будет таким:
TeenagerПопробуйте сами
extends Node
func _ready():
var age := int(OS.read_string_from_stdin())
# Выведите возрастную группу с помощью match и охранных условий
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и потоки выполнения
1Строки: углублённое изучение
Методы строкПоиск в строкахЗамена и обрезка пробеловРазделение и объединениеПовторение — проверка имени пользователя4Словари. Часть 2
Вложенные словариМассивы словарейОбъединение словарейКопирование словарейПовторение — подсчёт частоты10Продвинутые функции
Возврат нескольких значенийЛямбда-функции. Часть 1Лямбда-функции. Часть 2Повторение — сортировка с помощью лямбда-функцииРекурсивные функции. Часть 1Рекурсивные функции. Часть 2Повторение — сумма вложенного массива13Система управления запасами
Обзор проектаДобавление товара2Продвинутое управление ветвлением
Сопоставление с переменнымиУсловия в шаблонахШаблоны массивовШаблоны словарейПроверка принадлежностиИтоги — парсер команд5Приложение «Телефонная книга»
Показать менюДобавить контакт8Менеджер успеваемости студентов
Обзор проектаДобавить студента3Многомерные массивы
Основы двумерных массивовДоступ к элементам двумерного массиваВложенные циклы с двумерными массивамиПовторение: двумерные массивыРваные массивыТипичные шаблоны работы с двумерными массивамиПовторение: игровое поле6Множества и словари
Что такое множество?Словарь как множествоДобавление и удалениеОбъединение и пересечениеРазность множествПовторение — удаление дубликатовПотренируйтесь самостоятельно: Онлайн-компилятор GDScript