优先级¶ ↑
从最高到最低,这是 ruby 的优先级表。高优先级操作先于低优先级操作执行。
!, ~, unary + ** unary - *, /, % +, - <<, >> & |, ^ >, >=, <, <= <=>, ==, ===, !=, =~, !~ && || .., ... ?, : modifier-rescue =, +=, -=, etc. defined? not or, and modifier-if, modifier-unless, modifier-while, modifier-until { } blocks
一元 +
和一元 -
用于 +1
、-1
或 -(a + b)
。
Modifier-if、modifier-unless 等用于这些关键字的修饰符版本。例如,这是一个 modifier-unless 语句
a += 1 unless a.zero?
请注意,(a if b rescue c)
被解析为 ((a if b) rescue c)
,原因与优先级无关。请参阅 修饰符语句。
{ ... }
块的优先级低于所有列出的操作,但 do ... end
块的优先级更低。
优先级表中所有其他词都是关键字。