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]) # 4for day_name in Day:는 딕셔너리를 반복하는 것처럼 이름을 반복합니다.
챌린지
쉬움스크립트는 Day 열거형을 MONDAY부터 SUNDAY까지 선언합니다. 프로그램은 두 줄을 읽습니다. 하나는 대문자로 된 요일 이름이고, 다른 하나는 일수(0 이상인 정수)입니다.
두 줄을 출력합니다.
- 요일 이름,
has the value및 열거형에서 해당 요일의 값 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
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 GDScript 컴파일러