lua 编程技巧1 -- 三目运算符

Lua中的“三目运算符”Lua中没有直接的三目运算符,但可以通过逻辑运算实现if-else逻辑,从而实现三目运算符的效果,使代码更加优美简洁。条件判断中,boolean值为false和nil为假,除了false和nil外,其他值都为真,包括0也是真。以下是0为真的示例,这里使用了not not操作将0,nil强制转换为boolean...
lua 编程技巧1 -- 三目运算符
三目运算符的介绍

三目运算符能够简化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)2024-08-20
mengvlog 阅读 10 次 更新于 2025-07-21 13:38:54 我来答关注问题0
檬味博客在线解答立即免费咨询

编程相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部