Menu
CoddyTech

Enum Nedir?

Coddy'nin GDScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 37 / 78.

Bazı değerler yalnızca birkaç seçenekten biri olabilir: trafik ışığı kırmızı, sarı veya yeşildir ve oyuncu boştadır, koşuyordur ya da zıplıyordur. Seçeneği bir sayı olarak saklayabilirsin; boşta için 0 ve koşuyor için 1, ancak o zaman her okuyucunun her sayının ne anlama geldiğini hatırlaması gerekir:

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

Bir enum (enumeration’ın kısaltması), her seçeneğe bir ad verir. GDScript, 0’dan başlayarak adları senin için numaralandırır:

enum State { IDLE, RUN, JUMP }

Artık 1 yerine State.RUN yazıyorsun: enum'un adı, bir nokta ve seçenek. Kod bunun ne anlama geldiğini söylüyor:

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

Bir enum, betiğin en üst düzeyinde, func _ready(): satırının yanında ve onun içinde olmayacak şekilde tanımlanır. Bir fonksiyonun içindeki enum satırı, programın çalışmaya başlamadan önce durmasına neden olan bir hatadır:

extends Node

enum State { IDLE, RUN, JUMP }

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

Seçenekler sabitlerdir, bu nedenle State.RUN = 5 bir hatadır. State.RUNN gibi yanlış yazılmış bir seçenek program çalışmadan önce bildirilirken, 2 yerine 3 gibi yanlış bir sayı fark edilmez.

challenge icon

Görev

Kolay

Program, hava durumunu temsil eden 0 ile 3 arasında bir tam sayı okur. Sayılara bir enum ile ad verin ve bir tavsiye yazdırın.

  1. Betik dosyasının en üst düzeyinde, seçenekleri sırasıyla SUNNY, CLOUDY, RAINY ve SNOWY olan Weather adlı bir enum tanımlayın.
  2. weather değişkenini sayılarla değil, enum seçenekleriyle karşılaştırın ve tek satır yazdırın:
  • Weather.SUNNY: Wear sunglasses
  • Weather.CLOUDY: Bring a jacket
  • Weather.RAINY: Take an umbrella
  • Weather.SNOWY: Build a snowman

2 girdisi için çıktı şöyledir:

Take an umbrella

Kendin dene

extends Node

# Weather enum'unu burada tanımla

func _ready():
	var weather := int(OS.read_string_from_stdin())
	# weather değerini enum seçenekleriyle karşılaştır ve öneriyi yazdır
	pass
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online GDScript derleyicisi