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}`)
endIngat, 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}`)
endSatu 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.
Tantangan
MudahBuat 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
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pengantar Luau
1Memulai dengan Luau
Apa Itu Luau?Mengapa Menggunakan Luau?Kode Luau PertamamuPemeriksaan Tipe dan Mode ErrorRangkuman: Pengenalan Luau4Bekerja dengan Fungsi
Menentukan Tipe Parameter dan Nilai KembalianMenentukan Tipe Fungsi AnonimFungsi yang Tidak Mengembalikan NilaiParameter OpsionalNilai Default ParameterFungsi VariadikMendefinisikan Tipe FungsiRangkuman: Fungsi Bertipe2Tipe Inti
Tipe Dasar: num, str, boolTipe 'any': Jalan Keluar DaruratTipe 'unknown'Nil & Tipe OpsionalInferensi Tipe dalam PraktikAnotasi Tipe EksplisitUlasan: Latihan Tipe Inti5Alias, Union, dan Intersection
Alias Tipe untuk Tipe PrimitifTipe UnionMenggunakan Tipe UnionTipe LiteralTipe IntersectionMenggabungkan Alias TipeRekap: Kombinasi Tipe Lanjutan3Tabel Bertipe: array dan Map
array BertipeMenambahkan dan Membaca ElemenApa Itu Tipe Map?Mendeklarasikan dan Mengakses MapMelakukan Iterasi pada TabelTabel dengan Bentuk Campuranarray Bertipe Multidimensitable.unpack dan VarargsRingkasan: array dan MapLatihan sendiri: Compiler Luau online