Étant donné que les symboles ne répondent pas à la méthode <=> utilisée par Trier, quelqu'un a-t-il une technique pour trier un tableau de symboles? intéressé à voir d'autres idées. P>
3 Réponses :
Eh bien, Aussi dans 1.9 symboles do em> répondez à symbole.sort_by {| sym | sym.to_s} code> fonctionne. p>
<=> code>, vous pouvez donc simplement faire
symbole.sort p>. p>.
Et sur 1.8.7, symbole.sort_by &: to_s code>
@guns: Utiliser un symbole # to_proc pour trier les symboles? Ça doit être ironique!
Si vous voulez travailler sur des rubis plus âgés comme si elles étaient 1.9, vous pouvez simplement définir sur le 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 le BackPorts code> GEM:
require 'rubygems'
require 'backports/1.9.1/symbol/comparison'
[:a, :d, :c, :b].sort
# => [:a, :b, :c, :d]
Vous devriez vous rappeler qu'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
objet_id code>
Je ne peux pas dire avec certitude, mais si vous triez des symboles par ordre alphabétique, vous pouvez faire quelque chose de mal.