Оператор «<=>» в Ruby on Rails называется «оператором космического корабля» и используется для сравнения двух значений и определения их относительного порядка. Он возвращает 0, если значения равны, 1, если левое значение больше, и -1, если правое значение больше. Оператор космического корабля обычно используется в алгоритмах сортировки и пользовательских методах сортировки.
Вот несколько примеров использования оператора космического корабля в Rails:
-
Сортировка массива чисел:
numbers = [5, 2, 10, 1, 8] sorted_numbers = numbers.sort { |a, b| a <=> b } puts sorted_numbers # Output: [1, 2, 5, 8, 10]
-
Сортировка массива строк:
words = ["cat", "apple", "zebra", "banana"] sorted_words = words.sort { |a, b| a <=> b } puts sorted_words # Output: ["apple", "banana", "cat", "zebra"]
-
Сортировка массива пользовательских объектов:
class Person attr_accessor :name, :age def initialize(name, age) @name = name @age = age end end people = [ Person.new("John", 25), Person.new("Alice", 30), Person.new("Bob", 20) ] sorted_people = people.sort { |a, b| a.age <=> b.age } puts sorted_people.map(&:name) # Output: ["Bob", "John", "Alice"]