Menu
CoddyTech

Apa Itu Metatable?

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

Metatable adalah tabel Lua biasa, tetapi memiliki tujuan khusus. Saat kamu memasang metatable pada tabel lain (sebut saja tabel "utama"), kamu bisa mengubah perilaku tabel utama tersebut saat operasi tertentu dilakukan terhadapnya.

Bayangkan seperti ini: biasanya, jika kamu mencoba menjumlahkan dua tabel menggunakan operator +, Lua tidak tahu harus berbuat apa dan akan memberikan error. Namun, dengan metatable, kamu bisa menentukan arti penjumlahan untuk tabelmu. Kamu bisa membuatnya menjumlahkan nilai yang bersesuaian, menggabungkan isinya, atau melakukan hal lain yang masuk akal untuk programmu.

Metatable bekerja dengan mendefinisikan fungsi khusus yang disebut metamethod. Metamethod ini memiliki nama khusus yang diawali dengan dua garis bawah, seperti __add untuk penjumlahan atau __index untuk mencari kunci yang tidak ditemukan. Saat Lua menemukan operasi pada tabel yang memiliki metatable, Lua memeriksa apakah metatable tersebut memiliki metamethod yang sesuai, lalu menggunakannya untuk menentukan apa yang harus terjadi.

Konsep ini membuka banyak kemungkinan, seperti membuat tipe data kustom dengan perilakunya sendiri, menerapkan pola berorientasi object, melindungi tabel dari perubahan yang tidak diinginkan, dan masih banyak lagi. Dalam pelajaran mendatang, kamu akan belajar cara memasang metatable pada tabel dan menggunakan metamethod untuk menyesuaikan perilakunya.

Coba sendiri

Pelajaran ini tidak memiliki tantangan kode.

quiz iconUji dirimu

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

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Lua online