Menu
CoddyTech

Ulasan: Tabel Hanya-Baca

Termasuk bagian Logika dan Alur dalam perjalanan Lua di Coddy. Pelajaran 23 dari 54.

challenge icon

Tantangan

Mudah

Tulis 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 __index yang diatur ke tabel asli (agar tabel bisa dibaca)
  • Tambahkan __newindex ke 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

Latihan sendiri: Compiler Lua online