Menu
Coddy logo textTech

Tablolar Üzerinde Yineleme

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

Lua tabloları üzerinde defalarca loop çalıştırdınız — Luau birebir aynı loop yapılarını korur ve loop variables değerlerine tipler ekler. array'ler için, ipairs elemanları 1. indeksten #t indeksine kadar order sırasıyla walks eder ve her iki variables için de tip belirtebilirsiniz:

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

Unutmayın, ipairs eksik olan ilk indekste durur — ortadaki bir nil boşluğu loop işlemini erken sonlandırır. İyi yönetilen array yapılarında bu durum nadiren sorun yaratır, ancak bilmekte fayda vardır.

Map'ler için, string anahtarları da dahil olmak üzere her anahtar/değer çiftini ziyaret eden pairs kullanın. Bir {[string]: number} map üzerinde, loop variables 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

Çok önemli bir uyarı: pairs hash bölümü anahtarlarını garanti edilen bir order olmaksızın ziyaret eder — bu sıralama çalıştırmalar arasında farklılık gösterebilir. Belirli (deterministic) bir çıktıya (sıralı raporlar, testler) ihtiyacınız olduğunda, anahtarları bir array içine toplayın, table.sort ile sıralayın, ardından sıralanmış anahtarlar üzerinde ipairs ile loop çalıştırıp map'i indeksleyin.

challenge icon

Görev

Kolay

18, 21, 19 ve 24 değerleriyle başlatılan bir tiplendirilmiş dizi temps: {number} oluşturun.

ipairs ile üzerinde döngü kurun ve her iki döngü değişkenini (day: number, temp: number) türüyle belirtin. Her eleman için tam olarak şunu yazdırın:

Day 1: 18

(backtick kullanarak metin içi değişken yerleştirme / string interpolation ile) ve her sıcaklığı çalışan toplama ekleyin.

Döngüden sonra, toplamı kendi satırında yazdırın.

Kendin dene

-- Buraya kod yazın
-- 1) temps'i tanımla: {number} = {18, 21, 19, 24}
-- 2) for day: number, temp: number in ipairs(temps) do ... end
--    `Day {day}: {temp}` yazdırma ve total'e toplama
-- 3) döngüden sonra total'i yazdır
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

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