Ulasan: Tabel Hanya-Baca
Termasuk bagian Logika dan Alur dalam perjalanan Lua di Coddy. Pelajaran 23 dari 54.
Tantangan
MudahTulis sebuah fungsi makeReadOnly yang menerima original dan mengembalikan versi tabel yang hanya bisa dibaca.
Buat tabel proxy dengan metatable yang memungkinkan pembacaan dari tabel asli, tetapi mencegah segala perubahan.
Logika:
- Buat tabel proxy kosong
- Buat metatable dengan
__indexyang diatur ke tabel asli (agar tabel bisa dibaca) - Tambahkan
__newindexke metatable yang tidak melakukan apa pun (untuk memblokir perubahan) - Pasang metatable ke proxy menggunakan
setmetatable() - Kembalikan tabel proxy
Parameter:
original(tabel): Tabel yang akan dilindungi dari perubahan
Nilai kembali: Tabel proxy yang menyediakan akses hanya-baca ke tabel asli (tabel)
Coba sendiri
function makeReadOnly(original)
-- Tulis kodemu di sini
end
Semua pelajaran di Logika dan Alur
1Iterasi Tabel Tingkat Lanjut
Iterasi dengan pairs()Iterasi dengan ipairs()pairs() vs. ipairs()Rangkuman: Lembar Karakter4Pengenalan Metatable
Apa Itu Metatable?setmetatable & getmetatableMetamethod __indexMetamethod __newindexMetamethod __tostringMetamethod Aritmetika Bagian 1Metamethod Aritmetika Bagian 2Ulasan: Tabel Hanya-Baca2Fungsi library tabel Lainnya
table.concat()Pembuatan tabel & unpack()table.sort()Pengurutan Kustom dengan FungsiRangkuman, Papan Skor TertinggiLatihan sendiri: Compiler Lua online