Changes

Ruby Operators

2,769 bytes removed, 18:14, 19 November 2007
Operator Precedence
As with the math operators, Ruby also provides a number of combined bitwise operators (for example ~=, >>=, <<= ^=, &=).
 
== Operator Precedence ==
 
<table border="1" cellspacing="0">
<tr style="background:#efefef;">
<caption>Ruby operators (high to low precedence)</caption>
<tr style="background:#efefef;">
<th>Method</th>
<th>Operator</th>
<th>Description</th>
</tr>
 
<tr class="firstRow">
<td>Y</td>
<td><code>[ ]</code> <code>[ ]=</code></td>
<td>Element reference, element set</td>
</tr><tr>
<td>Y</td>
 
<td><code>**</code></td>
<td>Exponentiation</td>
</tr><tr>
<td>Y</td>
<td><code>!</code> <code>~</code> <code>+</code> <code>-</code></td>
 
<td>Not, complement, unary plus and minus (method names for the last two are <code>+@</code> and <code>-@</code>)</td>
</tr><tr>
<td>Y</td>
<td><code>*</code> <code>/</code> <code>%</code></td>
 
<td>Multiply, divide, and modulo</td>
</tr><tr>
<td>Y</td>
<td><code>+</code> <code>-</code></td>
<td>Plus and minus</td>
</tr><tr>
 
<td>Y</td>
<td><code>&gt;&gt;</code> <code>&lt;&lt;</code></td>
<td>Right and left shift</td>
</tr><tr>
<td>Y</td>
<td><code>&amp;</code></td>
<td>Bitwise `and'</td>
 
</tr><tr>
<td>Y</td>
<td><code>^</code> <code>|</code></td>
<td>Bitwise exclusive `or' and regular `or'</td>
</tr><tr>
<td>Y</td>
 
<td><code>&lt;=</code> <code>&lt;</code> <code>&gt;</code> <code>&gt;=</code></td>
<td>Comparison operators</td>
</tr><tr>
<td>Y</td>
<td><code>&lt;=&gt;</code> <code>==</code> <code>===</code> <code>!=</code> <code>=~</code> <code>!~</code></td>
 
<td>Equality and pattern match operators (<code>!=</code> and <code>!~</code> may not be defined as methods)</td>
</tr><tr>
<td></td>
<td><code>&amp;&amp;</code></td>
<td>Logical `and'</td>
 
</tr><tr>
<td></td>
<td><code>||</code></td>
<td>Logical `or'</td>
</tr><tr>
<td></td>
<td><code>..</code> <code>...</code></td>
 
<td>Range (inclusive and exclusive)</td>
</tr><tr>
<td></td>
<td><code>? :</code></td>
<td>Ternary if-then-else</td>
</tr><tr>
<td></td>
 
<td><code>=</code> <code>%=</code> <code></code>{ <code>/=</code> <code>-=</code> <code>+=</code> <code>|=</code> <code>&amp;=</code> <code>&gt;&gt;=</code> <code>&lt;&lt;=</code> <code>*=</code> <code>&amp;&amp;=</code> <code>||=</code> <code>**=</code></td>
 
<td>Assignment</td>
</tr><tr>
<td></td>
<td><code>defined?</code></td>
<td>Check if symbol defined</td>
</tr><tr>
<td></td>
 
<td><code>not</code></td>
<td>Logical negation</td>
</tr><tr>
<td></td>
<td><code>or</code> <code>and</code></td>
<td>Logical composition</td>
 
</tr><tr>
<td></td>
<td><code>if</code> <code>unless</code> <code>while</code> <code>until</code></td>
<td>Expression modifiers</td>
</tr><tr>
 
<td></td>
<td><code>begin/end</code></td>
<td>Block expression</td>
</tr>
</table>