Metatables in Lua
Metatables in Lua allow you to define custom behavior for tables, such as how they are indexed or how they behave in mathematical operations. Here's an example:
local t = {}
local mt = {
__index = function(t, k)
if k == "hello" then
return "world"
else
return nil
end
end,
__add = function(t1, t2)
local result = {}
for i = 1, #t1 do
result[i] = t1[i] + t2[i]
end
return result
end
}
setmetatable(t, mt)
print(t.hello)
print(t.foo)
local t1 = {1, 2, 3}
local t2 = {4, 5, 6}
local t3 = t1 + t2
for i = 1, #t3 do
print(t3[i])
end
No comments:
Post a Comment