newlist

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

 

and    or     not

逻辑运算符认为false和nil是假(false),其他为真,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

一个很实用的技巧:如果x为false或者nil则给x赋初始值v

x = x or v

等价于

if not x then

    x = v

end

and的优先级比or高。

 

C语言中的三元运算符

a ? b : c

在Lua中可以这样实现:

(a and b) or c

 

not的结果只返回false或者true

print(not nil)           --> true

print(not false)         --> true

print(not 0)             --> false

print(not not nil)       --> false

 


相关链接:
lua程序设计目录 - 中国lua开发者 - lua论坛

posted on 2014-03-01 11:09  一枚程序  阅读(235)  评论(0编辑  收藏  举报