2009-11-13 2 views
1

J'essaie probablement d'être difficile à ce sujet. J'essaye de formater la clé de hachage et le tableau de valeurs pour la sortie à l'utilisateur. Ruby-doc donne moi le code pour une valeur. http://www.ruby-doc.org/core/classes/Hash.html#M002861séparant la clé et plusieurs valeurs pour l'impression avec .each

h = { "a" => 100, "b" => 200 } 
h.each {|key, value| puts "#{key} is #{value}" } 

Je suis en train d'obtenir

h = { "a" => [100,'green'], "b" => [200,'red'] } 
h.each {|key, m,n| puts "#{key} is #{m} and #{n}"} 

produces: 

a is 100 and green 
b is 200 and red 

J'ai eu un peu de chance avec h.each {| clé, m, n | puts "# {key} est # {[m, 'n']}"}

it produces: 

a is 100green 
b is 200red 

je besoin d'un peu d'espace entre mon ensemble d'éléments, comment dois-je procéder?

Répondre

1
h.each {|k,v| puts "#{k} is #{v[0]} and #{v[1]}"} 
7
h.each {|key, (m, n)| puts "#{key} is #{m} and #{n}"} 
+0

Yay pour déstructurer bind! –

3
h.each { |key, value| puts "#{key} is #{value.first} and #{value.last}" } 
2

Je suis un fan de each_pair pour hash:

h.each_pair {|key, val| puts "#{key} is #{val[0]} and #{val[1]}" } 

Ou

h.each_pair {|key, val| puts "#{key} is #{val.join(' and ')}"} 
Questions connexes