разделение ключа и нескольких значений для печати с помощью .each - PullRequest
1 голос
/ 14 ноября 2009

Я, вероятно, пытаюсь быть твердым об этом. Я пытаюсь отформатировать хэш-ключ и и массив значений для вывода пользователю. Ruby-doc дает мне код для одного значения. http://www.ruby -doc.org / ядро ​​/ классов / Hash.html # M002861

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

Я пытаюсь получить

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

Мне повезло с h.each {| ключ, т, п | ставит "# {key} is # {[m, 'n']}"}

it produces:

a is 100green
b is 200red

Мне нужно пространство между массивом элементов, как мне это сделать?

Ответы [ 4 ]

7 голосов
/ 14 ноября 2009
h.each {|key, (m, n)| puts "#{key} is #{m} and #{n}"}
3 голосов
/ 14 ноября 2009
h.each { |key, value| puts "#{key} is #{value.first} and #{value.last}" }
2 голосов
/ 14 ноября 2009

Я фанат each_pair для хэшей:

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

Или

h.each_pair {|key, val| puts "#{key} is #{val.join(' and ')}"}
1 голос
/ 14 ноября 2009
h.each {|k,v| puts "#{k} is #{v[0]} and #{v[1]}"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...