如何在 Lua 中使用 C 中的 i++ 和 ++i

Mat*_*ski 1 lua

i++有没有办法代替Lua中使用i = i + 1我认为这是可能的,因为Lua可以直接使用C函数。

Sta*_*ven 5

您必须修改解析器才能接受++,因为它不是语法的一部分。不过,仅仅为了节省一些字符而创建一种新的不兼容的 Lua 方言是不值得的。

为此定义某种函数通常也不起作用,因为 Lua 中的函数是按值传递的,所以你必须编写

i = incr(i)
Run Code Online (Sandbox Code Playgroud)

这几乎违背了要点,并且++i无论如何也不让你表达。

也许你可以做incr 'variableName'并弄乱调用函数的本地环境......但同样,这太复杂了,不值得麻烦,而且通常从各个方面来说都是一个可怕的想法。