Menu
Coddy logo textTech

Metatable Nedir?

Coddy'nin Lua Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 16 / 54.

Bir metatablo, aslında normal bir Lua tablosudur, ancak özel bir amacı vardır. Bir metatabloyu başka bir tabloya (buna "ana" tablo diyelim) eklediğinizde, bu ana tablonun üzerinde belirli işlemler gerçekleştirildiğinde nasıl davranacağını değiştirebilirsiniz.

Şöyle düşün: normalde, + operatörünü kullanarak iki tabloyu toplamaya çalışırsan Lua ne yapacağını bilemez ve sana bir hata verir. Ancak bir metatabloyla, tabloların için toplamanın ne anlama geldiğini tanımlayabilirsin. Karşılık gelen değerleri toplamasını, içeriklerini birleştirmesini veya programın için anlamlı olan başka herhangi bir işlemi yapmasını sağlayabilirsin.

Metatablolar, metotmetotlar adı verilen özel işlevler tanımlanarak çalışır. Bu metotmetotların, toplama için __add veya eksik anahtarları aramak için __index gibi iki alt çizgiyle başlayan belirli adları vardır. Lua, metatabloya sahip bir tablo üzerinde bir işlemle karşılaştığında, metatablonun ilgili metotmetoda sahip olup olmadığını kontrol eder ve ne olması gerektiğini belirlemek için onu kullanır.

Bu kavram; kendi davranışlarına sahip özel veri türleri oluşturma, nesne yönelimli kalıpları uygulama, tabloları istenmeyen değişikliklerden koruma ve çok daha fazlası gibi olanakların önünü açar. Gelecek derslerde metatabloları tablolara nasıl bağlayacağınızı ve davranışlarını özelleştirmek için metamethod'ları nasıl kullanacağınızı öğreneceksiniz.

Kendin dene

Bu ders bir kod alıştırması içermiyor.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online Lua derleyicisi