''.instance_of?(String) && 0 == 0
是 true,但是
''.instance_of?字符串 && 0 == 0
给出
类型错误:需要类或模块
我是否必须在 &&
之前使用括号,或者这是一个错误?
最佳答案
这不是一个错误。这两件事只是意味着不同的事情。
其要点是 &&
和 ||
逻辑运算符的优先级高于方法调用。那么会发生什么情况是调用 instance_of?
方法,结果为 String && 0 == 0
,即 true
。 true
不是一个类,因此会出现错误。
另一方面,and
和 or
的优先级较低,因此
''.instance_of? String and 0 == 0
会按照您期望的方式工作。
在这种情况下,最好加上括号。
关于ruby - 在 ruby 函数调用中,逻辑运算符之前是否必须使用括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34659530/