lua的一个奇怪的问题百思不得其解!

EricBBB 2018-11-06 11:38:38
今天在撸lua的时候发现一个奇怪的问题

local a = true
print(a == true and false or true)

这样无论a是true还是false,输出结果都是true

我把代码改成了
local a = true
print(not a )
就好了

一直没想通为什么第一种的三目表达式是不行的呢?
...全文
494 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dirdirdir3 2019-08-26
  • 打赏
  • 举报
回复
 要习惯加上括号,不然经常会偶然出问题......
jingkai315918 2019-08-26
  • 打赏
  • 举报
回复
优先级的问题,,,
gradywu 2019-08-05
  • 打赏
  • 举报
回复
运算符优先级
码农~木子李 2019-08-02
  • 打赏
  • 举报
回复
这个问题其实网上有答案,就是优先级的问题 https://blog.csdn.net/coffeecato/article/details/77546887
fightsyj 2019-05-27
  • 打赏
  • 举报
回复
A and B or C:B不能为false
https://blog.csdn.net/fightsyj/article/details/84559328
王富贵9527 2019-04-29
  • 打赏
  • 举报
回复
lua 是没三目运算符的,由“and” 和“ or” 组成的实际上伪三目的,主要是利用lua “and” 和 “or” 的特性的,楼主写的表达式确实就是返回定值true。
鬼嚼码农 2019-04-20
  • 打赏
  • 举报
回复
or true
平淡风云 2019-01-25
  • 打赏
  • 举报
回复
运算符优先级的问题
fightsyj 2018-12-28
  • 打赏
  • 举报
回复
https://blog.csdn.net/fightsyj/article/details/84559328
Next66 2018-11-10
  • 打赏
  • 举报
回复
这个就是涉及一个运算符优先级的关系,我给你加上括号你看下 (((a == true) and false) or true) 这样就相当于(a or true),不管a是什么,这个表达式都是返回true

721

社区成员

发帖
与我相关
我的任务
社区描述
Cocos2d-x相关内容讨论专区
社区管理员
  • Cocos2d-x
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧