Lua - 如果和并且,哪个更快?

在Lua中,当我用and来检查两个条件时,哪种方法在运行时间上更快?

if bool and somefuntion() then
    do stuff
end

或者

if bool then
    if somefuntion() then
        do stuff
    end
end

点赞
用户2248754
用户2248754

Lua 是惰性求值的,因此不应该有任何区别。

在 c/c++ 中,短路逻辑与 ( &&) 也会产生相同的效果。

2013-08-29 11:39:39
用户107090
用户107090

运行 luac -l -p在两段代码上,您会发现它们生成完全相同的字节码。因此,请写出对您来说更清晰的代码。

它们相同的原因是Lua在_and_和_or_上使用短路评估,正如OllieB所提到的那样。

2013-08-29 12:13:57