класс SortedSet
SortedSet реализует Set, гарантирующий, что его элементы выводятся в отсортированном порядке (согласно результатам методов #<=>) при итерировании по ним.
Все элементы, добавляемые в SortedSet, должны отвечать на метод <=> для сравнения.
Также все элементы должны быть взаимно сравнимы: el1 <=> el2 не должен возвращать nil для любых элементов el1 и el2, иначе при итерировании по SortedSet будет поднято исключение ArgumentError.
Пример
require "set"
set = SortedSet.new([2, 1, 5, 6, 4, 5, 3, 3, 3])
ary = []
set.each do |obj|
ary << obj
end
p ary # => [1, 2, 3, 4, 5, 6]
set2 = SortedSet.new([1, 2, "3"])
set2.each { |obj| } # => raises ArgumentError: comparison of Fixnum with String failed
Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.