我在编写的程序中遇到了一些让我感到困惑的结果。我的理解是通常不需要括号(即obj.method1.method2
与 一样好(obj.method1).method2
)。此外,所有运算符都是真正的方法调用,所以我希望它们的行为相似。
所以想象一下我的惊喜"S"+"R".downcase
导致了Sr
但"S".+"R".downcase
最终"S".send(:+, "R").downcase
给了我预期的输出sr
这是因为操作员快捷方式的处理方式不同,还是我在这里缺少其他一些机械师?
编辑:问题不在于导致答案的操作顺序,这很明显。问题是为什么这个表达式是按这个顺序解决的。