Menu
CoddyTech

Melakukan Iterasi pada Tabel

Termasuk bagian Pengantar Luau dalam perjalanan Lua di Coddy. Pelajaran 17 dari 73.

Kamu sudah sering melakukan perulangan pada tabel Lua: Luau mempertahankan perulangan yang sama persis dan menambahkan tipe pada variabel perulangan. Untuk array, ipairs menelusuri elemen secara berurutan, dari indeks 1 hingga #t, dan kamu bisa memberi anotasi pada kedua variabel:

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

Ingat, ipairs berhenti pada indeks pertama yang hilang: celah nil di tengah akan mengakhiri perulangan lebih awal. Hal ini jarang menjadi masalah pada array yang terawat baik, tetapi tetap perlu diketahui.

Untuk map, gunakan pairs, yang mengunjungi setiap pasangan kunci/nilai, termasuk kunci string. Pada map {[string]: number}, variabel perulangannya secara alami bertipe string dan number:

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

Satu hal penting yang perlu diperhatikan: pairs mengunjungi kunci bagian hash tanpa urutan yang dijamin. Urutannya dapat berbeda di setiap eksekusi. Jika kamu membutuhkan output deterministik, seperti laporan terurut atau pengujian, kumpulkan kunci ke dalam array, urutkan dengan table.sort, lalu lakukan perulangan pada kunci yang sudah diurutkan dengan ipairs dan akses map menggunakan indeksnya.

challenge icon

Tantangan

Mudah

Buat array bertipe temps: {number} yang diinisialisasi dengan 18, 21, 19, dan 24.

Lakukan perulangan pada array tersebut dengan ipairs, lalu beri anotasi pada kedua variabel perulangan (day: number, temp: number). Untuk setiap elemen, cetak persis:

Day 1: 18

(dengan menggunakan interpolasi string memakai backtick), lalu tambahkan setiap suhu ke total berjalan.

Setelah perulangan, cetak total pada baris tersendiri.

Coba sendiri

-- Tulis kodemu di sini
-- 1) deklarasikan temps: {number} = {18, 21, 19, 24}
-- 2) for day: number, temp: number in ipairs(temps) do ... end
--    cetak `Day {day}: {temp}` dan jumlahkan nilainya ke total
-- 3) cetak total setelah perulangan
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pengantar Luau

Latihan sendiri: Compiler Luau online