|
2 | 2 | title: Operators
|
3 | 3 | ---
|
4 | 4 |
|
5 |
| -```ruby |
6 |
| -my_var = "something" |
7 |
| -my_var ||= "something" # Only assign if it is nil |
8 |
| - |
9 |
| -my_int += 1 |
10 |
| -my_int -= 1 |
11 |
| -my_int *= 2 |
12 |
| -my_int /= 2 |
13 |
| - |
14 |
| -v1 == v2 |
15 |
| -v1 != v2 |
16 |
| -v1 > v2 |
17 |
| -v1 < v2 |
18 |
| -v1 >= v2 |
19 |
| -v1 <= v2 |
20 |
| - |
21 |
| -v1 <=> v2 # -1, 0, 1 (less, equal, greater) |
22 |
| - |
23 |
| -c1 && c2 |
24 |
| -c1 || c2 |
25 |
| -!cond |
26 |
| -``` |
| 5 | +## Arithmetic |
| 6 | + |
| 7 | +| Operator | Description | |
| 8 | +| -------- | ------------------------------------------ | |
| 9 | +| `+` | Addition or unary plus | |
| 10 | +| `-` | Subtraction or unary minus | |
| 11 | +| `*` | Multiplication | |
| 12 | +| `/` | Division | |
| 13 | +| `%` | Remainder after division (modulo division) | |
| 14 | +| `**` | Exponentiation | |
| 15 | + |
| 16 | +## Assignment |
| 17 | + |
| 18 | +| Operator | Example | Same as | |
| 19 | +| -------- | ----------- | ------------------------------------- | |
| 20 | +| `=` | `a = b` | `a = b` | |
| 21 | +| `+=` | `a += b` | `a = a + b` | |
| 22 | +| `-=` | `a -= b` | `a = a - b` | |
| 23 | +| `*=` | `a *= b` | `a = a * b` | |
| 24 | +| `/=` | `a /= b` | `a = a / b` | |
| 25 | +| `\|\|=` | `a \|\|= b` | `a = b if a == nil or a == false` | |
| 26 | +| `\|\|=` | `a \|\|= b` | `a = b unless a == nil or a == false` | |
| 27 | + |
| 28 | +## Relational |
| 29 | + |
| 30 | +| Operator | Description | |
| 31 | +| -------- | --------------------------------- | |
| 32 | +| `==` | Equal to | |
| 33 | +| `!=` | Not equal to | |
| 34 | +| `>` | Greater than | |
| 35 | +| `<` | Less than | |
| 36 | +| `>=` | Greater than or equal to | |
| 37 | +| `<=` | Less than or equal to | |
| 38 | +| `<=>` | Less, equal or greater (-1, 0, 1) | |
| 39 | + |
| 40 | +## Logical |
| 41 | + |
| 42 | +| Operator | Description | |
| 43 | +| ------------- | ----------- | |
| 44 | +| `&&` `and` | AND | |
| 45 | +| `\|\|` `or` | OR | |
| 46 | +| `!` | NOT | |
| 47 | + |
| 48 | +## Bitwise |
| 49 | + |
| 50 | +| Operator | Description | |
| 51 | +| -------- | ----------- | |
| 52 | +| `&` | AND | |
| 53 | +| `\|` | OR | |
| 54 | +| `^` | XOR | |
| 55 | +| `<<` | Shift left | |
| 56 | +| `>>` | Shift right | |
0 commit comments