逻辑运算

and, or, not

其中,and 和 or 与 C 语言区别特别大。

在这里,请先记住,在 Lua 中,只有 false 和 nil 才计算为 false,其它任何数据都计算为 true,0 也是 true

and 和 or 的运算结果不是 true 和 false,而是和它的两个操作数相关。

a and b: 如果 a 为 false,则返回 a;否则返回 b

a or b: 如果 a 为 true,则返回 a;否则返回 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
Copyright © 湖南合鑫网络科技有限公司 2020 all right reserved,powered by Gitbook该文件修订时间: 2020-11-23 00:08:20

results matching ""

    No results matching ""