lua 编程技巧1 -- 三目运算符
发布网友
发布时间:2024-10-22 07:38
我来回答
共1个回答
热心网友
时间:2024-11-14 05:22
三目运算符的介绍
三目运算符能够简化if-else语句,从而使代码更加简洁。
在java或者c/c++中,上述代码可以用三目运算符简化为:
另外,三目运算符可以嵌套使用,例如限定某个数在某个区间[minValue, maxValue]内。
Lua中的“三目运算符”
Lua中没有直接的三目运算符,但可以通过逻辑运算实现if-else逻辑,从而实现三目运算符的效果,使代码更加优美简洁。
条件判断中,boolean值为false和nil为假,除了false和nil外,其他值都为真,包括0也是真。以下是0为真的示例,这里使用了not not操作将0,nil强制转换为boolean类型,类似于C++中的强制转换(bool)。
2.1. and运算符
2.2. or运算符
2.3. and or组合成“三目运算符”
通过以下逻辑运算可以实现类似c/c++/java三目运算符的效果:
求最大值和限定值区间的例子,可以用and-or写成下面的形式。
值得注意的是,表达式2运算的结果可能为nil, false。在使用and-or操作时,不能完全当成三目运算符使用。
如果表达式2返回的是nil或false,最后的结果将会使用表达式3的值,而不是我们想要的表达式2的结果。
因此,在使用过程中需要确保表达式2不返回nil或false。可以根据实际情况避免这种情况的发生,如果返回的结果包含非nil, false的默认值,将默认值放在表达式2可以避免这种情况,同时写出优美简洁的代码。否则建议使用if-else多写几行代码,避免逻辑运算混乱。
引用参考
Lua 在线工具 | 菜鸟工具 (runoob.com)