因为符号不响应< => sort使用的方法,有没有人有一种技术来排序符号数组?有兴趣看到其他一些想法。
答案 0 :(得分:16)
好吧,symbols.sort_by {|sym| sym.to_s}
有效。
同样在1.9符号做回复<=>
,所以你可以symbols.sort
。
答案 1 :(得分:5)
如果您想要处理旧红宝石,就好像它们是1.9,您可以定义&lt; =&gt;在符号上
class Symbol
include Comparable
def <=>(other)
self.to_s <=> other.to_s
end
end
答案 2 :(得分:2)
您可以使用backports
gem:
require 'rubygems'
require 'backports/1.9.1/symbol/comparison'
[:a, :d, :c, :b].sort
# => [:a, :b, :c, :d]