Ruby 将用户输入存储到空哈希

Ruby 将用户输入存储到空哈希,ruby,save,hash,Ruby,Save,Hash,我正在写一个基本程序。我从一个空散列开始,使用get.chomp并希望将信息存储到散列中,以便稍后(在同一会话中)可以调用它 。。。节目继续 稍后,我希望用户输入“review”以显示此信息(以及输入的任何其他信息): runs.each do |miles, time| puts "#{miles} miles in #{time} minutes." end 我知道在“gets.chomp”之前/之后我错过了一些东西。有什么建议吗?要将键值对添加到哈希中,可以使用运行[英里]=tim

我正在写一个基本程序。我从一个空散列开始,使用get.chomp并希望将信息存储到散列中,以便稍后(在同一会话中)可以调用它

。。。节目继续

稍后,我希望用户输入“review”以显示此信息(以及输入的任何其他信息):

runs.each do |miles, time|
   puts "#{miles} miles in #{time} minutes."
end

我知道在“gets.chomp”之前/之后我错过了一些东西。有什么建议吗?

要将键值对添加到哈希中,可以使用
运行[英里]=time

因此,您的代码如下所示:

runs = {}
puts "How many miles did you run?"
miles = gets.chomp
puts "How long did it take you?"
time = gets.chomp

runs[miles] = time

# When user enters `review`
runs.each do |miles, time|
    p "#{miles} miles in #{times} minutes."
end

这不是将密钥/值对添加到散列中的唯一方法,因此您可以查看中的所有可用方法。

在编写程序时,如果用户运行相同距离两次(不同时间),则只会记录最后一次结果,因为散列不能存储重复的密钥。更好的方法是将其存储在元组数组(=具有两个值的数组)中:

runs=[]
“你跑了多少英里?”
迈尔斯=get.chomp
“你花了多长时间?”
time=get.chomp

运行,但您没有在
哈希中放入任何值,并且您正在尝试调用哈希。。太棒了-1你藏在队伍里的东西。。。节目继续。。清楚地问你问题。。我们猜不到这就是我要问的。。我不想调用空哈希。我如何将这些变量“存储”在散列中,使其不为空?如果用户两次运行相同的距离会发生什么?没关系,我只需要一个总列表谢谢@co谷真的回答了我的问题。
runs = {}
puts "How many miles did you run?"
miles = gets.chomp
puts "How long did it take you?"
time = gets.chomp

runs[miles] = time

# When user enters `review`
runs.each do |miles, time|
    p "#{miles} miles in #{times} minutes."
end
runs = []

puts "How many miles did you run?"
miles = gets.chomp
puts "How long did it take you?"
time = gets.chomp
runs << [miles, time]

# ...    

runs.each do |miles, time|
   puts "#{miles} miles in #{time} minutes."
end
runs = Hash.new
puts "How many miles did you run?"
runs ["miles"] = gets.chomp
puts "How long did it take you?"
runs ["time"] = gets.chomp

# When user enters `review`
runs.each do |miles, time|
    p "#{miles} miles in #{times} minutes."
end