Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance Lua-如果和,什么更快?_Performance_If Statement_Lua_Runtime - Fatal编程技术网

Performance Lua-如果和,什么更快?

Performance Lua-如果和,什么更快?,performance,if-statement,lua,runtime,Performance,If Statement,Lua,Runtime,当我在lua中使用和检查两个条件时,哪种方式的运行时间更快 if bool and somefuntion() then do stuff end 或 ?Lua被懒散地评估,所以它应该没有什么区别 同样的效果也适用于c/c++中的短路逻辑and(&&),在两个片段上运行luac-l-p,您将看到它们生成完全相同的字节码。所以写下对你来说更清楚的东西 它们相同的原因是,正如OllieB所提到的,Lua对and和or使用短路评估。可能存在理论上的anwwer,但在实践中,我怀疑它是可测量的

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

if bool and somefuntion() then
    do stuff
end


Lua被懒散地评估,所以它应该没有什么区别


同样的效果也适用于c/c++

中的短路逻辑and(&&),在两个片段上运行
luac-l-p
,您将看到它们生成完全相同的字节码。所以写下对你来说更清楚的东西


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

可能存在理论上的anwwer,但在实践中,我怀疑它是可测量的。您对sytax有任何问题吗?没有,但函数的执行时间很长。我只是想知道当bool为false时它是否会运行..啊,那么也许你应该问这个问题。但是下面的答案是正确的。如果somefunction()很长怎么办?@Fox:我想你不理解“延迟评估”或“短路操作”这两个术语。如果bool为false,lua在任何一种情况下都不会计算somefunction()。
if bool then
    if somefuntion() then
        do stuff
    end
end