ごく最近、私は 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
ここで演算子の優先順位がどのように機能するかを説明できる人はいますか? 各部分の 3 つの構文はすべて同じ意味を反映していると想定しました。この質問がすでに尋ねられているか、説明されている場合は、まずお詫び申し上げます。