Lua a and b or c

lua中nil和false为条件不成立,其余都为条件成立.

a and b : a条件不成立,则返回a,否则,返回b

a or c   : a条件成立,则返回a,否则,返回b

常用x = x or v, x条件不成立,则赋初始值v

教程上说 的是  a and b or c  就像 c里面的 a?b:c
可是我有点想不通
下面是 例子
a = 1;b= false;c = 2;
c++里 是
d=  a?b:c; 结果 毫无疑问 是 d = b;//(false)


lua里是
d = a and b or c ;
-- 先算的是  a and b 因为a 是 true 则返回  b 
--[[然后是上面的结果  b or c , 因为b是false 所以返回 c 
所以结果 是 d = c  ]]
end
上面看起来结果完全不同  这是为什么? 

 

其实,这是有的书上遗漏了,这种等价的使用前提是:b不能为假

转载于:https://www.cnblogs.com/wentaolovecode/p/4465776.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值