最近我开始学习 Ruby,我正在试验 Ruby 如何调用单个对象的方法。但是,下面的代码让我很难受,因为我没有意识到它实际上是如何工作的
a = 4
b = -3
c = 2
puts a*b-c # operator precedence preserved
puts a . * b . - c # operator precedence not preserved
puts a.send(:*, b).send(:-, c) # operator precedence preserved
puts a-b*c # operator precedence preserved
puts a . - b . * c # operator precedence preserved
puts a.send(:-, b).send(:*, c) # operator precedence not preserved
输出:
-14
-20
-14
10
10
14
谁能解释运算符优先级如何在这里工作?我假设每个部分中的所有三种语法都应该反映相同的含义。如果这个问题已经被问过或解释过,我首先道歉。