lua - 如何在lua中制作自定义++、-=、+=运算符?
问题描述
如何在 lua 中自定义++
, -=
,运算符?+=
因为它缺少递增/递减运算符。
我正在尝试,这是我的代码:
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++
,它将返回 x+1 而无需修改 x。
opTable["++", int + 1]
作为 Lua 语句没有任何意义。你可能想要这样的东西:
opTable["++"] = function(int)
return int + 1
end
但它仍然不会做你想做的事。语法仍然是x("++")
,它会返回 x+1 并且不会修改 x。
推荐阅读
- sql - ODBC 连接/水晶报表
- python - Matploltib 箭袋图:参数顺序
- flutter - SizedBox 和 Padding.. 有什么区别吗?
- sockets - 在线从 uint8List 构造基于行的 ByteBuffer
- python-3.x - 如何交换包含列表且大小不同的 2 个熊猫数据框中的行?
- python - Python:get() 不适用于 tkinter python
- swift - 在 TableView 中禁用标题上的删除/编辑?
- delphi - 如何更改 IdMappedPortTCP1 发送到 MappedPort 的 ip
- javascript - 选择一个
- 使用 getElementsByClassName 方法的元素
- c# - 如何计算一种方法的使用次数?