ruby中的操作优先级
我对Ruby很陌生,所以如果这个问题很复杂,请接受我的道歉 我尝试了putsruby中的操作优先级,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
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”,有一些有用的东西。