ruby: сортировать массив символов - PullRequest
5 голосов
/ 09 ноября 2010

, поскольку символы не отвечают методу <=>, используемому сортировкой, есть ли у кого-нибудь метод сортировки массива символов?интересно увидеть некоторые другие идеи.

Ответы [ 3 ]

16 голосов
/ 09 ноября 2010

Ну, symbols.sort_by {|sym| sym.to_s} работает.

Также в 1,9 символах do отвечают на <=>, так что вы можете просто сделать symbols.sort.

5 голосов
/ 01 марта 2011

Если вы хотите работать с более старыми рубинами, как если бы они были 1,9, вы можете просто определить <=> для Symbol

class Symbol
  include Comparable

  def <=>(other)
    self.to_s <=> other.to_s
  end
end
2 голосов
/ 16 марта 2012

Вы можете использовать камень backports:

require 'rubygems'
require 'backports/1.9.1/symbol/comparison'
[:a, :d, :c, :b].sort
# => [:a, :b, :c, :d]
...