Dizin İmzaları
Coddy'nin Lua Journey'sinin Luau'ya Giriş bölümünün bir parçası. Ders 78 / 80.
Tablolar bölümünde daha önce {[string]: number} gibi eşleme türleriyle karşılaştın: bir indeks imzası; herhangi bir dizge anahtarı bir sayı değerine eşlenir. Kod yazarken anahtarlar henüz bilinmiyorsa bunlar çok işe yarar: sayaçlar, ayarlar, önbellekler, puanlar; çalışma zamanında oluşturulan her şey.
type Counts = {[string]: number}
local counts: Counts = {}
counts["potion"] = 3 -- herhangi bir string anahtar kullanılabilir
counts["sword"] = 1
counts["potion"] += 1 -- değerler sayı olarak kontrol edilirEşlemelerle çalışırken çalışma zamanına ilişkin iki gerçek önemlidir. İlk olarak, hiç ayarlanmamış bir anahtarı okumak nil döndürür: klasik sayma kalıbı, "eksik" değeri 0'a dönüştürerek bunu or ile ele alır:
counts[item] = (counts[item] or 0) + 1İkinci olarak, pairs() bir eşlemenin anahtarları üzerinde garanti edilmiş bir sıralama olmadan yinelenir: aynı programı iki kez çalıştırmak, anahtarları farklı sırada ziyaret edebilir. Çıktının öngörülebilir olması gerektiğinde anahtarları bir diziye topla, table.sort ile sırala ve bunun yerine sıralanmış dizi üzerinde yinele:
local keys: {string} = {}
for key in pairs(counts) do
table.insert(keys, key)
end
table.sort(keys)
for _, key in ipairs(keys) do
print(`{key}: {counts[key]}`)
endGörev
KolayAdlarını önceden bilmediğiniz oyuncuların puanlarını saklayın.
type Scores = {[string]: number}yazın velocal scores: Scores = {}oluşturun.- Puan ekleyin:
scores["mia"] = (scores["mia"] or 0) + 5, ardından"leo"için de aynısını3ile yapın. scores["mia"],scores["leo"]vescores["zed"]değerlerini yazdırın.
Kodu Çalıştır düğmesine basın: çıktı 5, 3 ve nil değerlerini gösterir.
Kendin dene
-- 1) type Scores = {[string]: number}, ardından local scores: Scores = {}
-- 2) "mia" için 5, "leo" için 3 puan ekle
-- 3) mia, leo ve zed değerlerini yazdır
Luau'ya Giriş bölümündeki tüm dersler
1Luau ile Başlarken
Luau Nedir?Neden Luau Kullanılmalı?İlk Luau KodunuzTip Denetimi ve Hata ModlarıÖzet: Luau'ya Giriş4Fonksiyonlarla Çalışma
Parametreleri ve Dönüş Değerlerini Tür BelirtmeAnonim Fonksiyonları Tür BelirtmeDeğer Döndürmeyen Fonksiyonlarİsteğe Bağlı ParametrelerVarsayılan Parametre DeğerleriBoolean Değerler için VarsayılanlarDeğişken Sayıda Parametre Alan FonksiyonlarFonksiyon Türlerini TanımlamaTekrar: Tür Belirtilmiş Fonksiyonlar2Temel Türler
Number, String ve Boolean'any' Türü: Kaçış Yolu'unknown' TürüNil ve İsteğe Bağlı TürlerTür Çıkarımı UygulamadaAçık Tür Ek AçıklamalarıTekrar: Temel Türler Alıştırması5Diğer Adlar (Aliases), Birleşimler, Kesişimler
İlkel Tipler için Tip Diğer Adları (Type Aliases)Birleşim Tipleri (Union Types)Birleşim Tipleri ile ÇalışmakLiteral (Sabit) TiplerKesişim Tipleri (Intersection Types)Tip Diğer Adlarını BirleştirmeÖzet: Gelişmiş Tip Kombinasyonları3Türlenmiş Tablolar: Diziler ve Map’ler
Türlenmiş DizilerÖğe Ekleme ve OkumaMap Türü Nedir?Map’leri Tanımlama ve ErişmeTablolar Üzerinde YinelemeKarma Şekilli TablolarBir Izgarayı OkumaBir Izgara Oluşturmatable.unpackÖzet: Diziler ve Map’lerKendi başına pratik yap: Online Luau derleyicisi