优先级¶ ↑
从最高到最低,这是 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 版本。例如,这是一个 modifier-unless 语句
a += 1 unless a.zero?
请注意,(a if b rescue c)
解析为 ((a if b) rescue c)
,原因与优先级无关。请参阅modifier 语句。
{ ... }
块的优先级低于所有列出的操作,但 do ... end
块的优先级较低。
上述优先级表中的所有其他单词都是关键字。