Ruby中哪些逻辑运算符的使用方法及区别?
- 内容介绍
- 文章标签
- 相关推荐
本文共计276个文字,预计阅读时间需要2分钟。
参见图英答案 + Difference between or and || in Ruby? 8个我不知道这里有什么不同。a=24, b=60, comp1=a + 42 或 b===60, comp1===60
参见英文答案 > 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
本文共计276个文字,预计阅读时间需要2分钟。
参见图英答案 + Difference between or and || in Ruby? 8个我不知道这里有什么不同。a=24, b=60, comp1=a + 42 或 b===60, comp1===60
参见英文答案 > 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

