# Different between 2 code

**URL:** <https://www.ruby-forum.com/t/different-between-2-code/192655>\
**Category:** Ruby\
**Created:** [August 3, 2010, 6:58pm UTC](https://www.ruby-forum.com/t/different-between-2-code/192655 "2010-08-03T18:58:04Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![amiref](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/41988e/32.png) [@amiref](https://www.ruby-forum.com/u/amiref)\
**Post date:** [August 3, 2010, 6:58pm UTC](https://www.ruby-forum.com/t/different-between-2-code/192655/1 "2010-08-03T18:58:04Z")

</div>

Hi  
Why 2 different sort in below code return different result ?  
( I dont understand different between “v1 \<=\> v2” and “v2 \<=\> v1” ).

* * *

array = [3,1,5,2,4]

# =\> [3, 1, 5, 2, 4]

array.sort {|v1,v2| v1 \<=\> v2 }

# =\> [1, 2, 3, 4, 5]

array.sort {|v1,v2| v2 \<=\> v1 }

# =\> [5, 4, 3, 2, 1]

* * *

---

<div class="post-metadata">

**Author:** ![amiref](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/41988e/32.png) [@amiref](https://www.ruby-forum.com/u/amiref)\
**Post date:** [August 3, 2010, 8:52pm UTC](https://www.ruby-forum.com/t/different-between-2-code/192655/2 "2010-08-03T20:52:40Z")

</div>

> ( I dont understand different between “v1 \<=\> v2” and “v2 \<=\> v1” ).

I think a quick Google search on the “spaceship operator” should help  
you with understanding the differences.

---

<div class="post-metadata">

**Author:** ![amiref](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/41988e/32.png) [@amiref](https://www.ruby-forum.com/u/amiref)\
**Post date:** [August 4, 2010, 10:08am UTC](https://www.ruby-forum.com/t/different-between-2-code/192655/3 "2010-08-04T10:08:26Z")

</div>

Amir E. wrote:

> Hi  
> Why 2 different sort in below code return different result ?  
> ( I dont understand different between “v1 \<=\> v2” and “v2 \<=\> v1” ).

irb(main):001:0\> 1 \<=\> 2  
=\> -1  
irb(main):002:0\> 2 \<=\> 1  
=\> 1  
irb(main):003:0\> 1 \< 2  
=\> true  
irb(main):004:0\> 2 \< 1  
=\> false
