Menu
CoddyTech

Tablolar Üzerinde Yineleme

Coddy'nin Lua Journey'sinin Luau'ya Giriş bölümünün bir parçası. Ders 17 / 80.

Lua tabloları üzerinde birçok kez döngü kurdun: Luau aynı döngüleri kullanır ve döngü değişkenlerine türler ekler. Diziler için ipairs öğeler üzerinde sırayla, 1. indexten #t değerine kadar ilerler ve her iki değişkene de tür açıklaması ekleyebilirsin:

local temps: {number} = {18, 21, 19}
for day: number, temp: number in ipairs(temps) do
    print(`Day {day}: {temp}`)
end

ipairs işlevinin ilk eksik indiste durduğunu unutma: ortadaki bir nil boşluğu döngüyü erkenden bitirir. Düzgün tutulan dizilerde bu nadiren sorun olur, ama bilmekte fayda var.

Eşlemeler için, her anahtar/değer çiftini ziyaret eden pairs işlevini kullan; buna string anahtarlar da dahildir. {[string]: number} türündeki bir eşlemede, döngü değişkenleri doğal olarak bir string ve bir number olur:

local ages: {[string]: number} = {Alice = 30, Bob = 25}
for name: string, age: number in pairs(ages) do
    print(`{name} is {age}`)
end

Önemli bir uyarı: pairs, hash bölümündeki anahtarları garantili bir sırayla ziyaret etmez. Sıra çalıştırmalar arasında değişebilir. Belirleyici bir çıktıya (sıralı raporlar, testler) ihtiyacın olduğunda anahtarları bir dizide topla, diziye table.sort uygula, ardından sıralanmış anahtarlar üzerinde ipairs ile döngü kur ve eşlemedeki değerleri indeksle.

challenge icon

Görev

Kolay

Bir haftalık sıcaklıkları ve toplamlarını yazdır.

  1. local temps: {number} = {12, 15, 11, 14} ve local total = 0 tanımla.
  2. for day: number, temp: number in ipairs(temps) do ile döngü kur, `Day {day}: {temp}` yazdır ve temp değerini total değerine ekle.
  3. Döngüden sonra total değerini yazdır.

Kodu çalıştır düğmesine bas: çıktı önce Day 1: 12 ile Day 4: 14 arasını, ardından 52 değerini gösterir.

Kendin dene

-- 1) temps: {number} ve total = 0 olarak tanımla
-- 2) day ve temp türleri belirtilmiş olarak döngü kur, her day değerini yazdır, total değerine ekle
-- 3) total değerini yazdır

Luau'ya Giriş bölümündeki tüm dersler

Kendi başına pratik yap: Online Luau derleyicisi