Enum이란?
Coddy GDScript 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 37번째.
일부 값은 몇 가지 선택지 중 하나만 될 수 있습니다. 신호등은 빨간색, 노란색 또는 초록색이고, 플레이어는 대기 중이거나 달리거나 점프 중입니다. 선택지를 숫자로 저장할 수도 있습니다. 대기 중은 0, 달리기는 1로 저장하는 식입니다. 하지만 그러면 모든 사람이 각 숫자가 무엇을 의미하는지 기억해야 합니다:
var state := 1
if state == 1:
print("Running")enum(열거형의 줄임말)은 각 옵션에 이름을 붙입니다. GDScript는 0부터 시작해 이름에 번호를 매깁니다:
enum State { IDLE, RUN, JUMP }이제 1 대신 State.RUN을 씁니다. 열거형의 이름, 점, 옵션으로 이루어집니다. 코드를 보면 무슨 뜻인지 알 수 있습니다.
var state := State.RUN
if state == State.RUN:
print("Running")열거형은 스크립트의 최상위 수준에서 func _ready(): 옆에 선언하며, 함수 안에 선언하지 않습니다. 함수 안에 있는 enum 줄은 프로그램이 실행되기 전에 멈추게 하는 오류입니다:
extends Node
enum State { IDLE, RUN, JUMP }
func _ready():
var state := State.JUMP
print(state) # 2옵션은 상수이므로 State.RUN = 5는 오류입니다. State.RUNN과 같이 옵션의 철자를 잘못 입력하면 프로그램을 실행하기 전에 오류가 보고되지만, 2 대신 3과 같이 잘못된 숫자를 입력하면 알아차리지 못합니다.
챌린지
쉬움프로그램은 날씨를 나타내는 0부터 3까지의 정수를 읽습니다. 열거형으로 숫자에 이름을 지정하고 조언 한 줄을 출력하세요.
- 스크립트의 최상위 수준에서
Weather라는 이름의 열거형을 선언하고, 옵션으로SUNNY,CLOUDY,RAINY,SNOWY를 이 순서대로 지정하세요. weather를 숫자가 아닌 열거형 옵션과 비교하고 한 줄을 출력하세요.
Weather.SUNNY:Wear sunglassesWeather.CLOUDY:Bring a jacketWeather.RAINY:Take an umbrellaWeather.SNOWY:Build a snowman
입력이 2일 때 출력은 다음과 같습니다.
Take an umbrella직접 해보기
extends Node
# 여기에 Weather enum을 선언하세요
func _ready():
var weather := int(OS.read_string_from_stdin())
# weather를 enum 옵션과 비교하고 조언을 출력하세요
pass
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 GDScript 컴파일러