ruby:排序符号数组

bre*_*ter 5 ruby sorting symbols ruby-on-rails

因为符号不响应排序使用的<=>方法,有没有人有一种技术来排序符号数组?有兴趣看到其他一些想法.

sep*_*p2k 16

好吧,symbols.sort_by {|sym| sym.to_s}工作.

同样在1.9符号响应<=>,所以你可以这样做symbols.sort.

  • 在1.8.7上,`symbols.sort_by&:to_s` (3认同)

mmr*_*ins 5

如果您想要处理旧红宝石,就好像它们是1.9,您可以在Symbol上定义<=>

class Symbol
  include Comparable

  def <=>(other)
    self.to_s <=> other.to_s
  end
end
Run Code Online (Sandbox Code Playgroud)