Menu
CoddyTech

Apa Itu Enum?

Termasuk bagian Logika dan Alur dalam perjalanan GDScript di Coddy. Pelajaran 37 dari 78.

Beberapa nilai hanya bisa berupa salah satu dari beberapa pilihan: lampu lalu lintas berwarna merah, kuning, atau hijau, dan pemain sedang diam, berlari, atau melompat. Kamu bisa menyimpan pilihan itu sebagai angka, dengan 0 untuk diam dan 1 untuk berlari, tetapi setiap pembaca harus mengingat arti setiap angka:

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

enum (singkatan dari enumerasi) memberi nama pada setiap opsi. GDScript memberi nomor pada nama-nama tersebut untukmu, dimulai dari 0:

enum State { IDLE, RUN, JUMP }

Sekarang kamu menulis State.RUN, bukan 1: nama enum, titik, lalu opsinya. Kode ini menjelaskan maknanya:

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

enum dideklarasikan di tingkat teratas skrip, bersebelahan dengan func _ready(): dan bukan di dalamnya. Baris enum di dalam fungsi akan menyebabkan error yang menghentikan program sebelum program dijalankan:

extends Node

enum State { IDLE, RUN, JUMP }

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

Opsi tersebut adalah konstanta, jadi State.RUN = 5 adalah error. Opsi yang salah eja seperti State.RUNN dilaporkan sebelum program dijalankan, sedangkan angka yang salah seperti 3 sebagai pengganti 2 tidak terdeteksi.

challenge icon

Tantangan

Mudah

Program membaca bilangan bulat dari 0 hingga 3 yang mewakili cuaca. Beri nama pada angka-angka tersebut dengan enum dan cetak satu saran.

  1. Di tingkat teratas skrip, deklarasikan enum bernama Weather dengan opsi SUNNY, CLOUDY, RAINY dan SNOWY, dalam urutan ini.
  2. Bandingkan weather dengan opsi enum (bukan dengan angka-angkanya) dan cetak satu baris:
  • Weather.SUNNY: Wear sunglasses
  • Weather.CLOUDY: Bring a jacket
  • Weather.RAINY: Take an umbrella
  • Weather.SNOWY: Build a snowman

Untuk input 2, output-nya adalah:

Take an umbrella

Coba sendiri

extends Node

# Deklarasikan enum Weather di sini

func _ready():
	var weather := int(OS.read_string_from_stdin())
	# Bandingkan weather dengan pilihan enum, lalu cetak sarannya
	pass
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler GDScript online