Enum Değerleri
Coddy'nin GDScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 39 / 78.
Her enum seçeneği bir int değeridir; bu nedenle seçenekleri karşılaştırabilir ve onlarla işlem yapabilirsiniz:
enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
func _ready():
print(Day.FRIDAY) # 4
print(Day.SATURDAY > Day.FRIDAY) # true
print(Day.FRIDAY + 1) # 5enum'un kendisi, adlardan değerlere eşleme yapan bir sözlük gibi çalışır. keys() adları sırayla, values() değerleri ve size() seçeneklerin sayısını döndürür:
print(Day.keys()) # ["MONDAY", "TUESDAY", ..., "SUNDAY"]
print(Day.size()) # 7Bir değerin adını yazdırmak için, keys() dizisini o değerle indeksleyin. Bu, seçeneklerin varsayılan değerleri 0, 1, 2... olduğunda işe yarar. Seçilmiş değerlere sahip bir enum için, bir değerin adını döndüren find_key() kullanın:
var today := Day.SATURDAY
print(Day.keys()[today]) # SATURDAYÜst düzeyde enum Coin { COPPER = 1, SILVER = 10 } olduğunda, Coin.keys()[10] aralık dışındadır; find_key() ise çalışır:
print(Coin.find_key(10)) # SILVERTers yönde, metin olarak saklanan bir addan değerine gitmek için köşeli parantezleri kullanın. Önce adı has() ile kontrol edin: enum'da olmayan bir ad hataya yol açar.
var text := "FRIDAY"
if Day.has(text):
print(Day[text]) # 4for day_name in Day: bir sözlük üzerinde döngü gibi adlar üzerinde döngü yapar.
Görev
KolayBetik, MONDAY ile SUNDAY arasındaki Day enum'unu tanımlar. Program iki satır okur: büyük harflerle yazılmış bir günün adını ve gün sayısını (0 veya daha fazla tam sayı).
İki satır yazdır:
- Günün enum'daki adını, değerinin
has the valueolduğunu ve değerini In, sayıyı,days:ve bu kadar gün sonraki günün adını
SUNDAY'dan sonra hafta yeniden MONDAY ile başlar. FRIDAY ve 3 girdileri için çıktı şöyledir:
FRIDAY has the value 4
In 3 days: MONDAYKendin dene
extends Node
enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
func _ready():
var day_name := OS.read_string_from_stdin()
var days := int(OS.read_string_from_stdin())
# Günün değerini ve belirtilen sayıda gün sonraki günün değerini 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