Precedence
优先权
从最高到最低,这是 ruby 的优先表。高优先级操作发生在低优先级操作之前。
!, ~, unary +
**
unary -
*, /, %
+, -
<<, >>
&
|, ^
>, >=, <, <=
<=>, ==, ===, !=, =~, !~
&&
||
.., ...
?, :
modifier-rescue
=, +=, -=, etc.
defined?
not
or, and
modifier-if, modifier-unless, modifier-while, modifier-until
{ } blocks
一元+
和一元-
是为+1
,-1
或者-(a + b)
。
修饰符 - 如果,修饰符 - 除非等是这些关键字的修饰符版本。例如,这是一个修饰符 - 除非表达式:
a += 1 unless a.zero?
{ ... }
块的优先级低于所有列出的操作,但do ... end
块的优先级较低。
上面的优先表中的所有其他词都是关键字。