47 votes

Dans Ruby, existe-t-il un moyen d'utiliser quelque chose comme hash.each_with_index do | [k, v], i |?

Sinon, il doit être

 h = {:a => 1, :b => 2.2}
h.each_with_index do |pair, i|
  k = pair[0]; v = pair[1]
  p k, v, i
end
 

et définir les k et v cette façon semble un peu maladroit. Peut-il être plus simple ou quelque chose comme

 h.each_with_index do |[k,v], i|
 

?

102voto

molf Points 34978

En fait, oui! Utilisez des parenthèses:

 h = {:a => 1, :b => 2.2}
h.each_with_index do |(k, v), i|
  p k, v, i
end
 

1voto

Jake Kalstad Points 1379

L'appel Inject devrait obtenir ce que vous voulez, http://www.ruby-doc.org/core/classes/Enumerable.src/M001494.html vérifiez cela et faites défiler jusqu'à la partie Inject, devrait fonctionner comme un charme!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X