2011-10-13 3 views
18

A partir de Ruby 1.9, les hachages conservent l'ordre d'insertion qui est très frais. Je veux connaître la meilleure façon d'accéder à la dernière paire clé-valeur.Accès à la dernière paire valeur/clé d'un hachage Ruby (1.9)

J'ai écrit un code qui fait cela:

hash.values.last 

Cela fonctionne et est très facile à comprendre, mais peut-être il est possible d'accéder à la dernière valeur directement, plutôt que par un intermédiaire (le tableau de valeurs). Est-ce?

Répondre

10

Rien de construit, non. Mais vous pourriez un singe patch si vous étiez si incliné (généralement pas recommandée, bien sûr):

class Hash 
    def last_value 
    values.last 
    end 
end 

Et puis:

hash.last_value 
16

Hash une méthode « premier », mais qui renvoient la première paire en mode tableau, pour le dernier, vous pouvez essayer:

my_hash.to_a.last 

ce retour dernière paire en mode tableau comme « première méthode »

2

Je viens de faire cela pour un très grand hachage:

hash.reverse_each.with_index do |(_, value), index| 
    break value if (index == 0) 
end 
14

Une alternative plus que je suis moi-même en utilisant:

hash[hash.keys.last] 
+1

Ceci est une solution impressionnante! –

Questions connexes