在逻辑运算符之前,我必须在ruby函数调用中使用括号吗?
在逻辑运算符之前,我必须在ruby函数调用中使用括号吗?,ruby,Ruby,“”。但是?(String)和&0==0的实例是真的 ''。的实例?字符串&&0==0 TypeError:需要类或模块 我必须在&&之前使用括号,还是它是一个bug 这不是一个bug。这两件事只是意味着不同的事情 其要点是&&和| |逻辑运算符的优先级高于方法调用。因此,调用的是?方法的实例,\u的结果是字符串&&0==0,这是truetrue不是一个类,因此出现错误 另一方面,和和或的优先级较低,因此 ''.instance_of? String and 0 == 0 会按照你期望的方式工
“”。但是?(String)和&0==0的实例是真的
''。的实例?字符串&&0==0
TypeError:需要类或模块
我必须在&&
之前使用括号,还是它是一个bug 这不是一个bug。这两件事只是意味着不同的事情
其要点是&&
和| |
逻辑运算符的优先级高于方法调用。因此,调用的是?
方法的实例,\u的结果是字符串&&0==0
,这是true
true
不是一个类,因此出现错误
另一方面,和
和或
的优先级较低,因此
''.instance_of? String and 0 == 0
会按照你期望的方式工作
在这种情况下,最好用括号括起来。实际上这不是一个bug。
虽然Ruby方法调用中的括号是可选的,但当它变得模棱两可时,可能需要括号。当然这不是一个bug。不要轻易怀疑一个bug。怀疑你自己的想法。Thx,所以一般来说,我应该在ops之前使用括号,对吗?@dimid,如果你想用逻辑运算的结果调用方法,你不必这样做。然而,惯例是这样的——如果你没有论点,就不要提出。如果有,如果方法具有“类似关键字的状态”,则省略它们。在其他情况下-将括号放在适当的位置。