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) # 2Seç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.
Görev
KolayProgram, 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.
- Betik dosyasının en üst düzeyinde, seçenekleri sırasıyla
SUNNY,CLOUDY,RAINYveSNOWYolanWeatheradlı bir enum tanımlayın. weatherdeğişkenini sayılarla değil, enum seçenekleriyle karşılaştırın ve tek satır yazdırın:
Weather.SUNNY:Wear sunglassesWeather.CLOUDY:Bring a jacketWeather.RAINY:Take an umbrellaWeather.SNOWY:Build a snowman
2 girdisi için çıktı şöyledir:
Take an umbrellaKendin 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
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
1String’leri Derinlemesine İnceleme
String MetotlarıString’lerde AramaDeğiştirme ve KırpmaBölme ve BirleştirmeTekrar: Kullanıcı Adı Kontrolü4Sözlükler Bölüm 2
İç İçe SözlüklerSözlük DizileriSözlükleri BirleştirmeSözlükleri KopyalamaTekrar - Frekans Sayacı10İleri Düzey Fonksiyonlar
Birden Fazla Değer DöndürmeLambda Fonksiyonları Bölüm 1Lambda Fonksiyonları Bölüm 2Tekrar - Lambda ile SıralamaÖzyinelemeli Fonksiyonlar Bölüm 1Özyinelemeli Fonksiyonlar Bölüm 2Tekrar - İç İçe Dizilerin Toplamı13Envanter Yönetim Sistemi
Projeye Genel BakışÜrün Ekle2İleri Düzey Karar Verme
Değişkenlerle EşleştirmeEşleştirme KoşullarıDizi KalıplarıSözlük KalıplarıÜyelik KontrolleriÖzet - Komut Ayrıştırıcı5Rehber Uygulaması
Menüyü GörüntüleKişi Ekle8Öğrenci Kayıt Yöneticisi
Proje Genel BakışıÖğrenci Ekle11Üst Düzey Fonksiyonlar
map Metodufilter Metodureduce Metoduany ve allTekrar - E-posta DoğrulayıcıTekrar - Sayı İşleyici3Çok Boyutlu Diziler
2B Dizilere Giriş2B Dizi Elemanlarına Erişim2B Dizilerle İç İçe DöngülerTekrar - 2B DizilerDüzensiz DizilerYaygın 2B Dizi ÖrüntüleriTekrar - Oyun Tahtası6Sözlüklerle Kümeler
Küme Nedir?Küme Olarak SözlükEkleme ve SilmeBirleşim ve KesişimKüme FarkıTekrar: Yinelenenleri Silme9Gelişmiş Veri Toplama
Değerleri ToplamaEn Küçük ve En Büyük Değeri BulmaÖzel SıralamaÖzet - Sözlük SıralayıcıKendi başına pratik yap: Online GDScript derleyicisi