Menu
CoddyTech

매치 가드

Coddy GDScript 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 7번째.

가드는 패턴에 조건을 추가합니다. 패턴 뒤에 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:는 hard_mode가 true일 때만 5와 일치합니다.

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 컴파일러