在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/