询问下lua中的连续逻辑运算是怎样判定的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了询问下lua中的连续逻辑运算是怎样判定的相关的知识,希望对你有一定的参考价值。

例如:x = a and b or c中最后是怎么输出的 求中间的详细判定过程 如果是4个(abcd),或更多呢?

在Lua中,只有false和nil才计算为false,其它任何数据都计算为true,0也是true!
and 和 or的运算结果不是true和false,而是和它的两个操作数相关。
a and b:如果a为false,则返回a(即false);否则返回b
a or b:如果 a 为true,则返回a(即true);否则返回b

举几个例子:
print(4 and 5) --输出 5 print(nil and 13) --输出 nil print(false and 13) --输出 false print(4 or 5) --输出 4 print(false or 5) --输出 5

在Lua中这是很有用的特性,也是比较令人混洧的特性。
我们可以模拟C语言中的语句:x = a? b : c,在Lua中,可以写成:x = a and b or c。
最有用的语句是: x = x or v,它相当于:if not x then x = v end 。

网上有基本语法教程,比如,
见:http://wenku.baidu.com/view/b7202812cc7931b765ce1559.html
参考技术A 法规不规范不会复活你功夫突然

以上是关于询问下lua中的连续逻辑运算是怎样判定的的主要内容,如果未能解决你的问题,请参考以下文章

lua中的逻辑运算符

Lua 运算符

Lua运算符

lua --- 逻辑运算符小结

JavaScript 用逻辑运算符优化代码里的多级判定

LUA逻辑运算符OR的使用