Menu
CoddyTech

Enum 값

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

모든 열거형 옵션은 int이므로 옵션을 비교하고 계산할 수 있습니다:

enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }

func _ready():
	print(Day.FRIDAY) # 4
	print(Day.SATURDAY > Day.FRIDAY) # true
	print(Day.FRIDAY + 1) # 5

열거형 자체는 이름에서 값으로 연결하는 사전처럼 작동합니다. keys()는 이름을 순서대로 반환하고, values()는 값을, size()는 옵션의 개수를 반환합니다:

print(Day.keys()) # ["MONDAY", "TUESDAY", ..., "SUNDAY"]
print(Day.size()) # 7

값의 이름을 출력하려면 해당 값으로 keys()를 인덱싱하세요. 옵션에 기본값 0, 1, 2...이 지정된 경우에 작동합니다. 값을 직접 지정한 enum에서는 값의 이름을 반환하는 find_key()를 사용하세요:

var today := Day.SATURDAY
print(Day.keys()[today]) # SATURDAY

최상위 수준에 enum Coin { COPPER = 1, SILVER = 10 }이 있으면 Coin.keys()[10]은 범위를 벗어나지만, find_key()는 작동합니다:

print(Coin.find_key(10)) # SILVER

반대로 텍스트로 저장된 이름에서 그 값으로 가려면 대괄호를 사용하세요. 먼저 has()로 이름을 확인하세요. enum에 없는 이름은 오류입니다.

var text := "FRIDAY"
if Day.has(text):
	print(Day[text]) # 4

for day_name in Day:는 딕셔너리를 반복하는 것처럼 이름을 반복합니다.

challenge icon

챌린지

쉬움

스크립트는 Day 열거형을 MONDAY부터 SUNDAY까지 선언합니다. 프로그램은 두 줄을 읽습니다. 하나는 대문자로 된 요일 이름이고, 다른 하나는 일수(0 이상인 정수)입니다.

두 줄을 출력합니다.

  1. 요일 이름, has the value 및 열거형에서 해당 요일의 값
  2. In, 일수, days: 및 그 일수만큼 지난 뒤의 요일 이름

SUNDAY 다음에는 한 주가 다시 MONDAY부터 시작합니다. 입력이 FRIDAY와 3일 때 출력은 다음과 같습니다.

FRIDAY has the value 4
In 3 days: MONDAY

직접 해보기

extends Node

enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }

func _ready():
	var day_name := OS.read_string_from_stdin()
	var days := int(OS.read_string_from_stdin())
	# 해당 요일의 값과 지정된 일수가 지난 후의 요일 값을 출력하세요
	pass
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리와 흐름의 모든 레슨

직접 연습해 보세요: 온라인 GDScript 컴파일러