puisque les symboles ne répondent pas à la méthode < => utilisée par tri, est-ce que quelqu'un a une technique pour trier un tableau de symboles? intéressé à voir d'autres idées.ruby: trier les tableaux de symboles
Répondre
Bien, symbols.sort_by {|sym| sym.to_s}
fonctionne.
Également dans 1.9 symboles faire répondre à <=>
, alors là, vous pouvez simplement faire symbols.sort
.
Et au 1.8.7, 'symbols.sort_by &: to_s' – guns
@guns: Utiliser le symbole # to_proc pour trier les symboles? Ça doit être ironique! –
Si vous souhaitez travailler sur des rubis plus âgés comme si elles étaient 1.9, vous pouvez simplement définir < => sur Symbole
class Symbol
include Comparable
def <=>(other)
self.to_s <=> other.to_s
end
end
Cette réponse géniale est géniale. –
Vous pouvez utiliser la pierre précieuse backports
:
require 'rubygems'
require 'backports/1.9.1/symbol/comparison'
[:a, :d, :c, :b].sort
# => [:a, :b, :c, :d]
Vous devez vous rappeler que Un symbole n'est pas une chaîne, mais plutôt un nombre avec un joli nom. J'ai compris votre question comme comment trier les symboles par 'object_id' – guns
Je ne peux pas dire avec certitude, mais si vous triez les symboles par ordre alphabétique, vous pouvez faire quelque chose de mal. –