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}`)
endUnutmayı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.
Görev
Kolay18, 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
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
1Luau ile Başlarken
Luau Nedir?Neden Luau Kullanılmalı?İlk Luau KodunuzTip Denetimi ve Hata ModlarıÖzet: Luau'ya Giriş4Fonksiyonlarla Çalışmak
Parametreleri ve Geri Dönüş Değerlerini TiplendirmeAnonim Fonksiyonları TiplendirmeHiçbir Şey Döndürmeyen Fonksiyonlarİsteğe Bağlı ParametrelerVarsayılan Parametre DeğerleriDeğişken Sayıda Parametre Alan Fonksiyonlar (Variadic)Fonksiyon Tiplerini TanımlamaÖzet: Tiplendirilmiş Fonksiyonlar2Temel Tipler
Temel Tipler: num, str, bool'any' Tipi: Kaçış Yolu'unknown' TipiNil ve İsteğe Bağlı (Optional) TiplerUygulamada Tip ÇıkarımıAçık Tip BelirteçleriÖzet: Temel Tipler Pratiği5Diğ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ı3Tipli Tablolar: Diziler ve Map'ler
Tipli DizilerEleman Ekleme ve OkumaMap Tipi Nedir?Map Bildirimi ve Map'lere ErişimTablolar Üzerinde YinelemeKarma Biçimli TablolarÇok Boyutlu Tipli Dizilertable.unpack ve VarargsÖzet: Diziler ve Map'ler