如何在 lua 中自定义 ++、-=、+= 运算符?
How to make a custom ++, -=, += operator in lua?
如何在 lua 中自定义 ++
、-=
、+=
运算符?因为它缺少 increment/decrementing 运算符。
我正在尝试,这是我的代码:
local opTable = {}
debug.setmetatable(0, {
__call = function(a, op)
return opTable[op](a)
end
})
opTable["++", int + 1] -- The rest of the code works, this is the main line that's the problem.
local x = 2;
print(x++)
我也想知道如何做 +=
和 -=,
或者如何做 /=
或 *=
和 %=
。
您无法在 Lua 中创建自定义运算符。不可能。
你的 __call
元方法(如果它确实有效)将允许你调用 x("++")
(即它允许你调用一个号码),而不是 x++
,它会 return x+1 不修改 x.
opTable["++", int + 1]
作为 Lua 语句没有任何意义。你可能想要这样的东西:
opTable["++"] = function(int)
return int + 1
end
但它仍然无法如您所愿。语法仍然是 x("++")
并且它将是 return x+1 并且它不会修改 x.
如何在 lua 中自定义 ++
、-=
、+=
运算符?因为它缺少 increment/decrementing 运算符。
我正在尝试,这是我的代码:
local opTable = {}
debug.setmetatable(0, {
__call = function(a, op)
return opTable[op](a)
end
})
opTable["++", int + 1] -- The rest of the code works, this is the main line that's the problem.
local x = 2;
print(x++)
我也想知道如何做 +=
和 -=,
或者如何做 /=
或 *=
和 %=
。
您无法在 Lua 中创建自定义运算符。不可能。
你的 __call
元方法(如果它确实有效)将允许你调用 x("++")
(即它允许你调用一个号码),而不是 x++
,它会 return x+1 不修改 x.
opTable["++", int + 1]
作为 Lua 语句没有任何意义。你可能想要这样的东西:
opTable["++"] = function(int)
return int + 1
end
但它仍然无法如您所愿。语法仍然是 x("++")
并且它将是 return x+1 并且它不会修改 x.