Друг често срещан начин за работа с колекции е да ги сортирате в някакъв ред. Сортирането се извършва предимно върху масиви; тъй като елементите в масивите са достъпни чрез техния индекс, редът, в който се появяват тези елементи, е важен.

Низовете нямат достъп до никакви методи за сортиране (ако искате да работите с низ по същия начин като масив, лесно е да го конвертирате в масив и след това да го сортирате).

Сортирането е задаване на реда на елементите в колекция според определен критерий.

[2, 5, 3, 4, 1].сортирай # =› [1, 2, 3, 4 ,5]

Сравнение

Върнатата стойност е нов масив с целите числа, подредени последователно според тяхната стойност. Сортирането се извършва чрез сравняване на елементите в колекция един с друг и подреждането им въз основа на резултата от това сравнение. Сравнението е в основата на това как работи сортирането.

Когато извикаме sort на масив, той не знае дали този масив съдържа цели числа, низове или някакъв друг тип обект. Той използва метод за определяне на това; методът <=> (понякога наричан оператор "космически кораб").

Методът <=>

Всеки обект в колекция, който искаме да сортираме, трябва да имплементира метод <=>. Този метод извършва сравнение между два обекта от един и същи тип и връща -1, 0 или 1 в зависимост от това дали първият обект е по-малък, равен или по-голям от втория обект; ако двата обекта не могат да бъдат сравнени, тогава се връща nil. Пример:

Ако <=> върне nil до sort, тогава той извежда грешка на аргумента. Върнатата стойност на <=>method (т.е. той търси -1, 0, 1 или nil). Редът String се определя от позицията на символа в ASCII таблицата.