Eşleştirme Koşulları
Coddy'nin GDScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 7 / 78.
Bir koruma koşulu, bir örüntüye koşul ekler. Örüntüden sonra when ve bir koşul yazın: örüntü yalnızca değer örüntüyle eşleştiğinde ve koşul true olduğunda eşleşir. Koruma koşulları Godot 4.4'ten beri kullanılabilir.
var hp := 15
match hp:
0:
print("Defeated")
var h when h < 20:
print("Low health: ", h)
_:
print("Healthy")Low health: 15GDScript'te 1..10 gibi aralık kalıpları yoktur. Bu işi koruma koşullu bir bağlama kalıbı yapar: var h when h < 20:, 20'nin altındaki her değerle eşleşir ve bu değere h adını verir.
Bir koruma ifadesi false olduğunda, match bir sonraki desene geçer. Desenler yukarıdan aşağıya doğru denenir, bu yüzden sıralama hangi bloğun çalışacağını belirler:
var temp := 32
match temp:
var t when t <= 0:
print("Freezing")
var t when t < 15:
print("Cold")
var t when t < 30:
print("Warm")
_:
print("Hot")Hotİkinci kalıbın t > 0 koşuluna ihtiyacı yoktur: 0 veya daha düşük bir sıcaklık zaten ilk kalıpla eşleşmiştir. Bir koruma koşulu başka değişkenlerle ve and ya da or kullanılarak herhangi bir koşulu içerebilir ve her kalıba uyabilir: 5 when hard_mode:, yalnızca hard_mode true olduğunda 5 ile eşleşir.
Görev
KolayProgram, yaşı bir tam sayı olarak age değişkenine okur. Yaş grubunu yazdırmak için korumalarla birlikte bir match ifadesi kullan:
0ile12arası:Child13ile19arası:Teenager20ile64arası:Adult65ile120arası:Senior- Diğer tüm sayılar:
Invalid age
Her aralığa iki uç değer de dahildir. Girdi 15 olduğunda çıktı:
TeenagerKendin dene
extends Node
func _ready():
var age := int(OS.read_string_from_stdin())
# Yaş grubunu match ve guard koşullarıyla yazdır
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