Ruby 2.4

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块的优先级较低。

上面的优先表中的所有其他词都是关键字。