Dizi Kalıpları
Coddy'nin GDScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 8 / 78.
Bir dizi kalıbı, dizi değişmezi gibi yazılır. Aynı boyuttaki ve öğeleri sırayla eşleşen bir diziyi eşleştirir. Kalıbın her öğesi bir değişmez, _ veya bir bağlama olabilir:
var point := [0, 7]
match point:
[0, 0]:
print("Origin")
[0, var y]:
print("On the y-axis at ", y)
[var x, var y]:
print("Point ", x, ", ", y)On the y-axis at 7Boyut aynı olmalıdır: [var x, var y], [1, 2, 3] ile eşleşmez. İstediğin sayıda ek öğeye (sıfır dahil) izin vermek için son öğe olarak .. yaz ve boş bir dizi için [] yaz:
var cmd := ["give", "sword", "Ana"]
match cmd:
[]:
print("Nothing typed")
["give", var item, ..]:
print("Giving ", item)Giving swordKoruyucular dizi desenleriyle de çalışır: [var a, var b] when a == b: birbirine eşit iki öğeyle eşleşir.
Dizi kalıpları yalnızca Array türüyle eşleşir. split() tarafından döndürülen PackedStringArray bunlarla asla eşleşmez. Sonucu Array olarak bildirilmiş bir değişkende saklayarak dönüştürün:
var words: Array = "go north".split(" ")
match words:
["go", var dir]:
print("Heading ", dir)Heading northGörev
KolayProgram, x,y biçiminde yazılmış bir noktayı okur ve (önceden yazılmış olan) point dizisinde iki tam sayı olarak saklar. Noktanın nerede olduğunu yazdırmak için dizi kalıplarıyla bir match deyimi kullan ve uyan ilk kuralı uygula:
- İkisi de
0:Origin xdeğeri0: ardındanygelenOn the y-axis at y=ydeğeri0: ardındanxgelenOn the x-axis at x=xveyeşitse: ardından değerin geldiğiOn the diagonal at- Diğer durumlarda: iki değerle birlikte
Point at (x, y)
0,5 girdisi için çıktı şöyledir:
On the y-axis at y=52,7 girdisi için ise:
Point at (2, 7)Kendin dene
extends Node
func _ready():
var parts := OS.read_string_from_stdin().split(",")
var point := [int(parts[0]), int(parts[1])]
# point değerini dizi kalıplarıyla eşleştir
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