2

我有一种情况,我对表执行一些操作,将它们称为 T 和 V。我已经正确设置了元表并且一切都按预期工作。问题是我通常不需要计算的结果。所以不要写

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

有没有办法让

for i=1,5 do
    T+V
end

?

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

4

2 回答 2

6

创建一个什么都不做的函数并将其传递给它:

function NOP() end

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

这还可以记录您的意图,而副作用就是您所追求的。

于 2012-12-14T00:52:17.543 回答
3

查看扩展 BNF 中 Lua 的语法,我看不到没有等号或其他东西的构造表达式(exp)的方法。

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

  • 分配一个值,例如p = exp

  • 作为条件,例如while exp then

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

  • 用于索引即t[exp]

于 2012-12-13T16:00:08.130 回答