Ruby 表达式解析

标签 ruby

为什么会出现以下错误:

irb >> x == "AN" && arr.include? ("bar")
 SyntaxError: (irb):80: syntax error, unexpected tLPAREN_ARG, expecting $end
x == "AN" && arr.include? ("bar")
                           ^

但这工作正常:

x == "AN" && (arr.include? ("bar"))

它看起来是这样做的:( x == "AN"&& arr.include? ) && ("bar")。这里有什么歧义?

最佳答案

你不应该隔开你的论点,它会导致混淆的解释:

x == "AN" && arr.include?("bar")

歧义在于试图确定 ("bar") 是参数还是其他东西。

有些情况下您可以不加空格,但这通常是您不想养成的习惯。

关于Ruby 表达式解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18791373/

相关文章:

ruby-on-rails - bash :/home/XXX/. rvm/scripts/rvm: 没有那个文件或目录

javascript - Rails 3.2/Active Admin - 自定义 Assets 管道路径不起作用,导致 ActionView::Template::Error (file.js 未预编译)

ruby - 我的 Ruby IRC 机器人没有连接到 IRC 服务器。我究竟做错了什么?

html - Sinatra NoMethodError at/undefined 方法 `stylesheet_link_tag' #

ruby - Eclipse 中的 Rails 1.9.3 语法突出显示

Ruby 传递方法(?)作为参数?

ruby - 从 Ruby block 中的一系列调用返回

mysql - 在mac上安装mysql2时出现"Failed to build gem native extension"错误

ruby-on-rails - 如何下载 URL 中可用的所有图像?

css - 使用 rails 和 bootstrap 时不显示占位符文本