为什么不正确? 我不明白。
代码:
C:\Users\Administrator>lua53
Lua 5.3.4 Copyright (C) 1994-2017 Lua.org, PUC-Rio
> local a = true print(a and false or true)
true
> local a = false print(a and false or true)
true
> local a = false print(a == true and false or true)
true
> local a = true print(a == true and false or true)
true
> local a = true print(a == false and false or true)
true
> local a = false print(a == false and false or true)
true
> local a = false print((a == false) and false or true)
true
> local a = false print(not a )
true
> local a = true print(not a )
false
>
答案 0 :(得分:1)
在Lua中,and
和or
具有lowest operator precedence,其中or
低于and
。因此,任何形式为X and false or true
的表达式都将被解释为(X and false) or true
。
好吧,用false
进行逻辑和运算的任何内容都是 false ;这就是逻辑性和工作原理。与true
进行逻辑或运算的结果都是正确的。而且,由于or
排在最后,所有这些表达方式都只是说true
的过于复杂的方式。