Lua一次性结果

时间:2012-12-13 15:43:14

标签: lua

我有一种情况,我在表上执行一些操作,称之为T和V.我已正确设置metatable,一切都按预期工作。问题是我通常不需要计算结果。所以不要写

for i=1,5 do
    _=T+V
end

有没有办法让

for i=1,5 do
    T+V
end

我没有使用Lua命令行,所以我不能只写= T + V。

2 个答案:

答案 0 :(得分:6)

创建一个不执行任何操作并将其传递给它的函数:

function NOP() end

for i=1,5 do
    NOP(T+V)
end

这另外用于记录您的意图,并且副作用就是您所追求的目标。

答案 1 :(得分:3)

查看syntax of Lua in extended BNF我没有看到构造表达式(exp)的方法,没有等号或其他东西。

只有4种情况可以使用表达式(exp):

  • 指定一个值,例如p = exp

  • 作为条件,例如while exp then

  • 在函数调用中,即f(exp)

  • 用于索引,即t[exp]