ruby - 在 ruby​​ 函数调用中,逻辑运算符之前是否必须使用括号?

标签 ruby

''.instance_of?(String) && 0 == 0 是 true,但是

''.instance_of?字符串 && 0 == 0 给出 类型错误:需要类或模块

我是否必须在 && 之前使用括号,或者这是一个错误?

最佳答案

这不是一个错误。这两件事只是意味着不同的事情。

其要点是 &&|| 逻辑运算符的优先级高于方法调用。那么会发生什么情况是调用 instance_of? 方法,结果为 String && 0 == 0,即 truetrue 不是一个类,因此会出现错误。

另一方面,andor 的优先级较低,因此

''.instance_of? String and 0 == 0

会按照您期望的方式工作。

在这种情况下,最好加上括号。

关于ruby - 在 ruby​​ 函数调用中,逻辑运算符之前是否必须使用括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34659530/

相关文章:

ruby - Rails 通过用户表单添加 rolify 角色

ruby-on-rails - 使用 ActiveRecord 总和进行排序和限制?

ruby-on-rails - 我不知道我使用的是哪个版本的 Ruby

html - 如何使用 Nokogiri 漂亮地打印 HTML?

ruby - pubnub 发布不发布

ruby - 多个变量赋值是同时完成的吗?

Gemfile 中的 Ruby Bundler 多个来源

ruby-on-rails - 优化多条记录关联查询

c# - 为什么类结构语言中的构造函数通常被认为是线程安全的?

ruby - 如何使用 Nokogiri 选择元素