Lua - If和and,什么更快?

Fox*_*Fox 5 performance lua if-statement runtime

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

if bool and somefuntion() then
    do stuff
end
Run Code Online (Sandbox Code Playgroud)

要么

if bool then
    if somefuntion() then
        do stuff
    end
end
Run Code Online (Sandbox Code Playgroud)

lhf*_*lhf 10

luac -l -p在两个片段上运行,您将看到它们生成完全相同的字节码.所以写一些更清楚的东西.

它们是相同的原因是,Lua使用短路评价,如通过OllieB提及.


Oll*_*ieB 5

Lua是懒惰的评估,所以它应该没有区别.

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