5

当我在 lua 中检查两个条件时,哪种方式运行时间更快?

if bool and somefuntion() then
    do stuff
end

或者

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

?

4

2 回答 2

10

在两个片段上运行luac -l -p,您会看到它们生成完全相同的字节码。所以写任何对你来说更清楚的东西。

它们相同的原因是 Lua 对andor使用短路评估,正如 OllieB 所提到的。

于 2013-08-29T12:13:57.070 回答
5

Lua 被懒惰地评估,所以它应该没有区别。

c/c++ 中的短路逻辑和 ( && ) 的效果相同

于 2013-08-29T11:39:39.987 回答