ruby中的操作优先级

ruby中的操作优先级,ruby,Ruby,我对Ruby很陌生,所以如果这个问题很复杂,请接受我的道歉 我尝试了puts5-8.abs,它返回了-3,然后我尝试了puts(5-8.abs,它返回了3 当我尝试放置5-8.abs时,到底发生了什么事情,好像abs被忽略了?5-8.abs好像在做你得到的5-(8.abs)=5-8=-3 此外,任何时间优先级都是最不可能的,显式括号有帮助。方法调用(8.abs在本例中)总是比运算符具有更高的优先级(-) 因此,5-8.abs转化为5-(8.abs)=5-8=-3这是一个优先问题。方法调用.abs

我对Ruby很陌生,所以如果这个问题很复杂,请接受我的道歉

我尝试了puts
5-8.abs
,它返回了
-3
,然后我尝试了puts
(5-8.abs
,它返回了
3


当我尝试放置
5-8.abs
时,到底发生了什么事情,好像
abs
被忽略了?

5-8.abs好像在做你得到的5-(8.abs)=5-8=-3

此外,任何时间优先级都是最不可能的,显式括号有帮助。

方法调用(
8.abs
在本例中)总是比运算符具有更高的优先级(
-


因此,
5-8.abs
转化为
5-(8.abs)=5-8=-3
这是一个优先问题。方法调用
.abs
,在减号运算符之前求值

5-8.abs # => equivalent to 5-(8.abs)
这样想吧——空白在Ruby中并不重要。如果你看到这个,你会期望发生什么

5 - 8.abs

这是。

是操作员吗?我在ruby中的印象是一切都是一种方法。运算符是特殊的。它们的计算方式不同(如您所见),其中一些无法重新定义(如
=
和大多数逻辑运算符)。如果你用谷歌搜索“操作符方法ruby”,有一些有用的东西。