Ruby Language

Operators

Comparison Operators

Operator Description
== true if the two values are equal.
!= true if the two values are not equal.
< true if the value of the operand on the left is less than the value on the right.
> true if the value of the operand on the left is greater than the value on the right.
>= true if the value of the operand on the left is greater than or equal to the value on the right.
<= true if the value of the operand on the left is less than or equal to the value on the right.
<=> 0 if the value of the operand on the left is equal to the value on the right,
1 if the value of the operand on the left is greater than the value on the right,
-1 if the value of the operand on the left is less than the value on the right.

Assignment Operators

Simple Assignment

= is a simple assignment. It creates a new local variable if the variable was not previously referenced.

x = 3
y = 4 + 5
puts "x is #{x}, y is #{y}"

This will output:

x is 3, y is 9

Parallel Assignment

Variables can also be assigned in parallel, e.g. x, y = 3, 9. This is especially useful for swapping values:

x, y = 3, 9
x, y = y, x
puts "x is #{x}, y is #{y}"

This will output:

x is 9, y is 3

Abbreviated Assignment

It’s possible to mix operators and assignment. For example:

x = 1
y = 2
puts "x is #{x}, y is #{y}"

x += y
puts "x is now #{x}"

Shows the following output:

x is 1, y is 2
x is now 3

Various operations can be used in abbreviated assignment:

Operator Description Example Equivalent to
+= Adds and reassigns the variable x += y x = x + y
-= Subtracts and reassigns the variable x -= y x = x - y
*= Multiplies and reassigns the variable x *= y x = x * y
/= Divides and reassigns the variable x /= y x = x / y
%= Divides, takes the remainder, and reassigns the variable x %= y x = x % y
**= Calculates the exponent and reassigns the variable x **= y x = x ** y

This modified text is an extract of the original Stack Overflow Documentation created by the contributors and released under CC BY-SA 3.0 This website is not affiliated with Stack Overflow