加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby逻辑运算符

发布时间:2020-12-17 01:35:13 所属栏目:百科 来源:网络整理
导读:参见英文答案 Difference between “or” and || in Ruby?????????????????????????????????????8个 我不知道这里有什么不同. a = 24b = 60comp1 = a 42 or b == 60comp1 # = falsecomp2 = (a 42 or b == 60)comp2 # = true 有人可以解释发生了什么以及为什
参见英文答案 > Difference between “or” and || in Ruby?????????????????????????????????????8个
我不知道这里有什么不同.

a = 24
b = 60
comp1 = a > 42 or b == 60
comp1 # => false
comp2 = (a > 42 or b == 60)
comp2 # => true

有人可以解释发生了什么以及为什么返回值不同?

解决方法

这是由于操作符绑定的强度,因为操作符在 a very particular order中应用.

或者非常松散,它具有最低优先级. ||运算符非常强大,与此相反.请注意该表中的内容如何||在=之前,但是或之后?这有影响.

从你的例子:

comp1 = a > 42 or b == 60

这就是Ruby解释这个的方式:

(comp1 = (a > 42)) or (b == 60)

因此,整个语句返回true但comp1被赋值为false,因为它不捕获整个事物.

所以要解决这个问题,只需使用强大的绑定版本:

comp1 = a > 42 || b == 60
# => true

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读