Рубиновый хэш хэша - PullRequest
       0

Рубиновый хэш хэша

0 голосов
/ 29 февраля 2012

Мне нужен хеш для сбора результатов, например:

results = Hash.new()

results['127.0.0.1'] = Hash.new()
results['127.0.0.2'] = Hash.new()

results['127.0.0.1']['port'] = '80'
results['127.0.0.2']['port'] = '80'

results['127.0.0.1']['ver'] = 'abc'
results['127.0.0.1']['ver'] = 'def'

Кажется, работает нормально, но теперь я могу показать результаты? :) Я хотел бы иметь:

ip: 127.0.0.1
port: 80
ver: abc
ip: 127.0.0.2
port: 80
ver: def

Большое спасибо!

Ответы [ 2 ]

2 голосов
/ 29 февраля 2012
results.each do |k, v| 
    puts "IP: #{k}, Port: #{v['port']}, Ver: #{v['ver']}"
end
2 голосов
/ 29 февраля 2012

Лучший способ определить хеш:

result = {
  '127.0.0.1' => {
    port: 80,
    ver: 'abc'
  },
  '127.0.0.2' => {
    port: 80,
    ver: 'def'
  }
}

и затем:

result.each do |key, value|
  puts "ip: #{key}"
  value.each { |k,v| puts "\t#{key}: #{value}" }
end

Этот метод также будет работать, если вы добавите некоторые дополнительные параметры в хэш.

Но если вы хотите только для отладки, прочитайте о awesome_print.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...