Menu
CoddyTech

Strażnicy dopasowania

Część sekcji Logika i przepływ programu ścieżki GDScript w Coddy. Lekcja 7 z 78.

Warunek strażniczy dodaje warunek do wzorca. Napisz when i warunek po wzorcu: wzorzec pasuje tylko wtedy, gdy wartość pasuje do wzorca i warunek jest spełniony (true). Warunki strażnicze są dostępne od 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 nie ma wzorców zakresu, takich jak 1..10. Tę funkcję pełni wzorzec wiązania z warunkiem ochronnym: var h when h < 20: pasuje do każdej wartości poniżej 20 i przypisuje jej nazwę h.

Gdy warunek ochronny ma wartość false, match przechodzi do następnego wzorca. Wzorce są sprawdzane od góry do dołu, więc kolejność decyduje o tym, który blok zostanie wykonany:

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

Drugi wzorzec nie potrzebuje t > 0: temperatura wynosząca 0 lub mniej pasowała już do pierwszego. Warunek ochronny może używać dowolnego warunku, innych zmiennych oraz and lub or i pasuje do każdego wzorca: 5 when hard_mode: pasuje do 5 tylko wtedy, gdy hard_mode ma wartość true.

challenge icon

Wyzwanie

Łatwy

Program wczytuje wiek jako liczbę całkowitą do zmiennej age. Użyj instrukcji match z warunkami, aby wypisać grupę wiekową:

  • od 0 do 12: Child
  • od 13 do 19: Teenager
  • od 20 do 64: Adult
  • od 65 do 120: Senior
  • Każda inna liczba: Invalid age

Każdy zakres obejmuje obie granice. Dla wejścia 15 wynikiem jest:

Teenager

Spróbuj swoich sił

extends Node

func _ready():
	var age := int(OS.read_string_from_stdin())
	# Wypisz grupę wiekową za pomocą match i warunków ochronnych
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator GDScript online