Menu
CoddyTech

Условия в шаблонах

Часть раздела Логика и потоки выполнения путешествия по 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.

challenge icon

Задание

Легко

Программа считывает возраст как целое число в age. Используй оператор match с защитными условиями, чтобы вывести возрастную группу:

  • 0–12: Child
  • 13–19: Teenager
  • 20–64: Adult
  • 65–120: Senior
  • Любое другое число: Invalid age

Каждый диапазон включает обе границы. Для входного значения 15 результат будет таким:

Teenager

Попробуйте сами

extends Node

func _ready():
	var age := int(OS.read_string_from_stdin())
	# Выведите возрастную группу с помощью match и охранных условий
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и потоки выполнения

Потренируйтесь самостоятельно: Онлайн-компилятор GDScript