什么';这两个LUA脚本之间的区别是什么?

什么';这两个LUA脚本之间的区别是什么?,lua,modulo,Lua,Modulo,它们都返回相同的输出(N3、N6、N9),但我似乎无法理解它们之间的区别。正如所指出的,它们都在检查“时间”是否是3的倍数,尽管第一个版本更“优雅”,但处理成本更高。第二个在意义上不太容易理解(你可以理解,它试图检查3的倍数,但这不是第一眼看到的东西,你必须思考一下) Cheers%是算术“模”运算符。两个脚本都只是简单地检查次是否是3的倍数。调用2^53次后,第一个版本将无法正常工作:-)“成本更高”是真的,但可能无法检测到。 local times=0 function rTA(v) t

它们都返回相同的输出(N3、N6、N9),但我似乎无法理解它们之间的区别。

正如所指出的,它们都在检查“时间”是否是3的倍数,尽管第一个版本更“优雅”,但处理成本更高。第二个在意义上不太容易理解(你可以理解,它试图检查3的倍数,但这不是第一眼看到的东西,你必须思考一下)


Cheers

%
是算术“模”运算符。两个脚本都只是简单地检查
是否是3的倍数。调用2^53次后,第一个版本将无法正常工作:-)“成本更高”是真的,但可能无法检测到。
local times=0
function rTA(v)
  times=times+1
  if times % 3 <= 0 then 
        print(v)
    end
end
local times=0
function rTA(v)
  times=times+1
  if times == 3 then 
        print(v)
        times=0
    end
end

rTA("N1")
rTA("N2")
rTA("N3")
rTA("N4")
rTA("N5")
rTA("N6")
rTA("N7")
rTA("N8")
rTA("N9")