Spaceship Operator <=>

The **spaceship operator** compares two objects (from left to right), returning either _**-1, 0, or 1**_.

### Explanation
`a <=> b`

```ruby
return -1 if a < b
return 0 if a == b
return 1 if a > b
```

```ruby
4 <=> 7 # -1
7 <=> 7 # 0
7 <=> 4 # 1
```

### Example one
As you know, in ruby (as in any language) we can get a result in different ways, we could use just the `sort` method, of course, but I just wanted to put this in another way:

```ruby
languages = ['ruby', 'go', 'javascript', 'phyton', 'rust', 'elixir']

languages.sort{|first, second| first <=> second } # ["elixir", "go", "javascript", "phyton", "ruby", "rust"]

languages.sort{|first, second| second <=> first } # ["rust", "ruby", "phyton", "javascript", "go", "elixir"]
```

### Example two
Suppose that we have the next array with the numbers `1 to 10`, and we will like to separate them into different groups:
1. One group for the numbers that are **less than 5**
2. Another group with the number **5** 
3. The last group with the numbers that are **greater than 5**

We could get this result by iterating the array and then by putting a couple of if statements in order to group these 3 categories, but with the spaceship operation we could get this result in an easier way:

```ruby
numbers = Array(1..10)
target = 5

numbers.group_by{ |number| number <=> target } # {-1=>[1, 2, 3, 4], 0=>[5], 1=>[6, 7, 8, 9, 10]}
```

samantha-bello
November 19, 2021
