Class Index [+]

Quicksearch

Precedence

From highest to lowest, this is the precedence table for ruby. High precedence operations happen before low precedence operations.

!, ~, unary +

**

unary -

*, /, %

+, -

<<, >>

&

|, ^

>, >=, <, <=

<=>, ==, ===, !=, =~, !~

&&

||

.., ...

?, :

modifier-rescue

=, +=, -=, etc.

defined?

not

or, and

modifier-if, modifier-unless, modifier-while, modifier-until

{ } blocks

Unary + and unary - are for +1, -1 or -(a + b).

Modifier-if, modifier-unless, etc. are for the modifier versions of those keywords. For example, this is a modifier-unless statement:

a += 1 unless a.zero?

Note that (a if b rescue c) is parsed as ((a if b) rescue c) due to reasons not related to precedence. See modifier statements.

{ ... } blocks have priority below all listed operations, but do ... end blocks have lower priority.

All other words in the precedence table above are keywords.

There is an updated format of the API docs for this version here.