ruby - 使用<<时出现语法错误,但使用+ =时则没有

标签 ruby syntax syntax-error

ruby 1.8.7

为什么这样可以:

string += method "value"

但这会引发语法错误:
string << method "remove reviewer"

在新版本的ruby中是否具有相同的行为?

最佳答案

您可以使用<<=+以及方法调用的不同Operator Precedence来解释此行为。

Ruby阅读您的第一个示例为:

string += (method "value")

但第二个为:
(string << method) "remove reviewer"

IMO是一个好习惯,即使在很多情况下Ruby不需要方法,也可以使用括号来进行方法调用。这使代码更具可读性,并且不易出错:
string += method("value")
string << method("remove reviewer")

关于ruby - 使用<<时出现语法错误,但使用+ =时则没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32804889/

相关文章:

ruby-on-rails - 多轨服务器

ruby - ActionDispatch::IntegrationTest 中的 stub 方法

c++ - 错误 C2061 : syntax error : identifier

syntax-error - INSERT sql 语句中的嵌套 SELECT

python - Python 以什么顺序查找语法错误?

javascript - WebSocket onopen - 有时仅发送消息

ruby-on-rails - 事件记录中的动态 where 子句避免 sql 注入(inject)

c++ - 模板类方法语法

Mongodb点符号通配符?

html - 无法通过 ID 引用图像 map ?