Menu
CoddyTech

O que é um Enum?

Parte da seção Lógica e fluxo do Journey de GDScript da Coddy. Lição 37 de 78.

Alguns valores só podem ser uma de algumas opções: um semáforo está vermelho, amarelo ou verde, e um jogador está ocioso, correndo ou pulando. Você poderia armazenar a opção como um número, com 0 para ocioso e 1 para correndo, mas então cada pessoa que ler o código terá que se lembrar do que cada número significa:

var state := 1
if state == 1:
	print("Running")

Um enum (abreviação de enumeração) dá um nome a cada opção. O GDScript numera os nomes para você, começando em 0:

enum State { IDLE, RUN, JUMP }

Agora você escreve State.RUN em vez de 1: o nome do enum, um ponto e a opção. O código diz o que isso significa:

var state := State.RUN
if state == State.RUN:
	print("Running")

Um enum é declarado no nível superior do script, ao lado de func _ready(): e não dentro dele. Uma linha enum dentro de uma função é um erro que interrompe o programa antes de ele ser executado:

extends Node

enum State { IDLE, RUN, JUMP }

func _ready():
	var state := State.JUMP
	print(state) # 2

As opções são constantes, então State.RUN = 5 é um erro. Uma opção escrita incorretamente, como State.RUNN, é identificada antes de o programa ser executado, enquanto um número incorreto, como 3 no lugar de 2, passa despercebido.

challenge icon

Desafio

Fácil

O programa lê um número inteiro de 0 a 3 que representa o clima. Dê nomes aos números usando um enum e imprima uma recomendação.

  1. No nível superior do script, declare um enum chamado Weather com as opções SUNNY, CLOUDY, RAINY e SNOWY, nessa ordem.
  2. Compare weather com as opções do enum (não com os números) e imprima uma linha:
  • Weather.SUNNY: Wear sunglasses
  • Weather.CLOUDY: Bring a jacket
  • Weather.RAINY: Take an umbrella
  • Weather.SNOWY: Build a snowman

Para a entrada 2, a saída é:

Take an umbrella

Experimente você mesmo

extends Node

# Declare o enum Weather aqui

func _ready():
	var weather := int(OS.read_string_from_stdin())
	# Compare weather com as opções do enum e imprima o conselho
	pass
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e fluxo

Pratique por conta própria: Compilador de GDScript online