Präzedenz

Von der höchsten zur niedrigsten ist dies die Präzedenztabelle für Ruby. Operationen mit hoher Präzedenz finden vor Operationen mit niedriger Präzedenz statt.

!, ~, unary +

**

unary -

*, /, %

+, -

<<, >>

&

|, ^

>, >=, <, <=

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

&&

||

.., ...

?, :

modifier-rescue

=, +=, -=, etc.

defined?

not

or, and

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

{ } blocks

Unäre + und unäre - sind für +1, -1 oder -(a + b).

Modifier-if, modifier-unless usw. sind für die Modifier-Versionen dieser Schlüsselwörter. Zum Beispiel ist dies eine Modifier-unless-Anweisung

a += 1 unless a.zero?

Beachten Sie, dass (a if b rescue c) aufgrund von Gründen, die nicht mit der Präzedenz zusammenhängen, als ((a if b) rescue c) geparst wird. Siehe Modifier-Anweisungen.

{ ... }-Blöcke haben Priorität unter allen aufgeführten Operationen, aber do ... end-Blöcke haben niedrigere Priorität.

Alle anderen Wörter in der obigen Präzedenztabelle sind Schlüsselwörter.