在Lua中链接逻辑操作

4

这是在Lua中最有效的方法吗?谢谢!

if X >= 0 and Y >= 0 then
    if X1 <= 960 and Y1 <= 720 then
        someCode()
    else end
else end

3
通常,判断一种方法是否比另一种方法更快的唯一方法是对它们进行分析,并查看在常见情况下哪个更胜一筹。 - Multimedia Mike
1
我希望你在 else end 块里面有些东西。 - hjpotter92
3
相关问题:Lua - If 和 and,哪个更快? - mpeterv
2个回答

1

避免嵌套的if语句是一个好主意,我会尝试使用单个if检查。最好的方法是对函数进行分析,看哪种方式更快。

-- Be paranoid and use lots of parenthesis:
if ( ( (X >= 0) and (Y >= 0) ) and ( (X1 <= 960) and (Y1 <= 720) ) ) then
    someCode()
end

这段话的意思是:这个与之前相同,但更易读。好的代码不仅要快,还要易于阅读。
local condition1 = ((X >= 0) and (Y >= 0))
local condition2 = ((X1 <= 960) and (Y1 <= 720))

if (condition1 and condition2) then
    someCode()
end

0

你也可以使用运算符使其更简短一些:

if ((X >= 0 && Y >= 0) && (X1 <= 960 && Y1 <= 920)) then
    someCode()
end

如果你想要可读性,Yowza的答案也应该足够了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接