Menu
CoddyTech

Czym jest typ wyliczeniowy?

Część sekcji Logika i przepływ programu ścieżki GDScript w Coddy. Lekcja 37 z 78.

Niektóre wartości mogą przyjmować tylko jedną z kilku opcji: światło drogowe jest czerwone, żółte lub zielone, a gracz jest bezczynny, biegnie lub skacze. Możesz przechowywać opcję jako liczbę, używając 0 dla stanu bezczynności i 1 dla biegu, ale wtedy każdy czytelnik musi pamiętać, co oznacza każda liczba:

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

enum (skrót od wyliczenia) nadaje każdej opcji nazwę. GDScript numeruje nazwy za Ciebie, zaczynając od 0:

enum State { IDLE, RUN, JUMP }

Teraz wpisujesz State.RUN zamiast 1: nazwę enuma, kropkę i opcję. Kod mówi, co to oznacza:

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

Wyliczenie deklaruje się na najwyższym poziomie skryptu, obok func _ready():, a nie wewnątrz niego. Linia enum wewnątrz funkcji jest błędem, który zatrzymuje program, zanim ten się uruchomi:

extends Node

enum State { IDLE, RUN, JUMP }

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

Opcje są stałymi, więc State.RUN = 5 jest błędem. Błędnie zapisana opcja, taka jak State.RUNN, zostanie zgłoszona przed uruchomieniem programu, natomiast niewłaściwa liczba, taka jak 3 zamiast 2, pozostanie niezauważona.

challenge icon

Wyzwanie

Łatwy

Program odczytuje liczbę całkowitą od 0 do 3, która oznacza pogodę. Nadaj liczbom nazwy za pomocą wyliczenia i wypisz poradę.

  1. Na najwyższym poziomie skryptu zadeklaruj wyliczenie o nazwie Weather z opcjami SUNNY, CLOUDY, RAINY i SNOWY, w tej kolejności.
  2. Porównaj weather z opcjami wyliczenia (nie z liczbami) i wypisz jeden wiersz:
  • Weather.SUNNY: Wear sunglasses
  • Weather.CLOUDY: Bring a jacket
  • Weather.RAINY: Take an umbrella
  • Weather.SNOWY: Build a snowman

Dla wejścia 2 wynikiem jest:

Take an umbrella

Spróbuj swoich sił

extends Node

# Zadeklaruj tutaj enum Weather

func _ready():
	var weather := int(OS.read_string_from_stdin())
	# Porównaj weather z wartościami enum i wyświetl poradę
	pass
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator GDScript online