1
我知道可以在lua中爲表添加超載操作符。通過這樣做:lua哪些操作符可以超載
foo = {
value = 10
}
bar = {
value = 15
}
mt = {
__add = function(left,right)
left.value = left.value + right.value;
return left;
end
}
setmetatable(foo,mt);
foo = foo + bar;
print(foo.value);
打印:25
但我現在的問題是其他運營商就可以超載,如果__add被用來訪問+運營商,你如何可以訪問其他運營商?
'__gc'和'__metatable'和'__mode'怎麼樣? – warspyking
由Lua內部事件觸發,或與內部結構管理相關。 Lua語言中沒有明確的操作符可以直接觸發這些metamethods。 – Vlad