===== Operators Precedence Table =====
(High to low precedence)
| **Operator** | **Description** |
| [ ] [ ]= | Element reference, element set|
| **
| Exponentiation irb(main):002:0> 2 ** 3 => 8
|
| ! ~ + - | Not, complement, unary plus and minus (method names for the last two are +@ and -@) |
| * / %
| Multiply, divide, and modulo |
| + - | Plus and minus |
| >> << | Right and left shift |
| & | Bitwise 'and' |
| ^ |
| Bitwise exclusive `or' and regular `or' |
| <= < > >=
| Comparison operators |
| <=> == === != =~ !~
| Equality and pattern match operators (!= and !~ may not be defined as methods) |
| && | Logical 'and' |
| ||
| Logical 'or' |
| .. ... | Range (inclusive and exclusive) |
| ? : | Ternary if-then-else |
| = %= { /= -= += |= &= >>= <<= *= &&= ||= **=
| Assignment |
| defined? | Check if symbol defined |
| not | Logical negation |
| or and | Logical composition |
| if unless while until | Expression modifiers |
| begin/end | Block expression |
From: [[http://phrogz.net/ProgrammingRuby/language.html#table_18.4|Programming Ruby - The Pragmatic Programmer's Guide]]