Спасибо за обновление вопроса C_B.
Я думаю, что здесь есть небольшая проблема между хэшами и массивами.
Ваш текущий метод приводит к следующему:
#=> [{"january"=>300}, {"february"=>...}]
Это происходит потому, что когда вы вызываете rain_array.push(a => b)
, вы каждый раз вставляете хеш в массив в a => b
.
Мне кажется, вам лучше бы хранить все вещи как хеш, возможно:
hash = {}
def get_rainfall(hash, key, value)
hash[key] = value
puts hash
end
get_rainfall(hash, 'january', 300)
# {"january"=>300}
get_rainfall(hash, 'february', 200)
#{"january"=>300, "february"=>200}
Если вы добавите больше записей, они будут храниться под месяцем в качестве ключа, с количеством осадков в качестве значения.
В качестве альтернативы, вы также можете использовать массив массивов, чтобы настроить текущий метод:
rain_array = []
def get_rainfall(array, a, b)
array.push([a, b])
puts array
end
get_rainfall(rain_array, 'january', 300)
# january
# 300
get_rainfall(rain_array, 'february', 200)
# january
# 300
# february
# 200
Вы заметите, что я извлекаю объявление массива или хеша для хранения значений вне метода; без этого вы потеряете доступ к нему, как только метод будет запущен.
Надеюсь, что это поможет - с радостью расширяться, если у вас есть какие-либо вопросы или запросы. Дайте мне знать, как вы поживаете.
Еще одно обновление на основе дополнительного комментария о получении пользовательского ввода. Чтобы начать, попробуйте следующее:
hash = {}
def get_rainfall(hash, month)
puts "Please enter value for #{month}"
hash[month] = gets.chomp
puts hash
end
get_rainfall(hash, 'january')