Menu
CoddyTech

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과 같이 잘못된 숫자를 입력하면 알아차리지 못합니다.

challenge icon

챌린지

쉬움

프로그램은 날씨를 나타내는 0부터 3까지의 정수를 읽습니다. 열거형으로 숫자에 이름을 지정하고 조언 한 줄을 출력하세요.

  1. 스크립트의 최상위 수준에서 Weather라는 이름의 열거형을 선언하고, 옵션으로 SUNNY, CLOUDY, RAINY, SNOWY를 이 순서대로 지정하세요.
  2. weather를 숫자가 아닌 열거형 옵션과 비교하고 한 줄을 출력하세요.
  • Weather.SUNNY: Wear sunglasses
  • Weather.CLOUDY: Bring a jacket
  • Weather.RAINY: Take an umbrella
  • Weather.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
quiz icon실력 점검

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

논리와 흐름의 모든 레슨

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