L'operatore
L'operatore : viene utilizzato per chiamare i metodi di un oggetto. L'uso dell'operatore : richiede che il metametodo __index sia definito come metatable stesso. Se il metametodo __index è impostato sulla metatabella stessa, il risultato è quello di tradurre t:test(123) in mt["test"]t,123), dove mt è la metatabella che è stata definita usando set metatabella per la tabella t.
Esempio
mt={}
mt.__index = mt
mt.test = function(self,value)
if self.total == null then
self.total = 0
end
self.total = self.total + value
return self.total
end
t={}
setmetatable(t,mt) --> x = 123
x = t:test(123)
y = t:test(1) --> y = 124
z = t.total --> z = 124