Ruby 打印与密钥对应的嵌套哈希值
我有一个嵌套哈希Ruby 打印与密钥对应的嵌套哈希值,ruby,Ruby,我有一个嵌套哈希 @metals = { "1" => {"Aluminum" => 100}, "2" => {"Steel" => 80}, "3" => {"Copper" => 60} } 我试图从中提取键和值。当用户提交1时,我想同时打印aluminal和100 我的代码是: puts "Which metal do you want to use?" @metals.each do |key1, value1| value1.
@metals = {
"1" => {"Aluminum" => 100},
"2" => {"Steel" => 80},
"3" => {"Copper" => 60}
}
我试图从中提取键和值。当用户提交1
时,我想同时打印aluminal
和100
我的代码是:
puts "Which metal do you want to use?"
@metals.each do |key1, value1|
value1.each do |key2, value2|
puts "Select #{key1} for #{key2}"
end
end
@metalsdata = gets.chomp
if @metals.has_key?(@metalsdata)
puts "#{@metalsdata}"
else
puts "Invalid option"
end
我迭代了散列以向用户显示选项。而不是放置“{@metalsdata}”
您可以编写:
key, value = @metals[@metalsdata].first
您可以编写以下内容,而不是放置“#{@metalsdata}”
:
key, value = @metals[@metalsdata].first
将“{@metalsdata}”替换为“{code>”{@metalsdata[@metalsdata]。检查}”
@metalsdata[@metalsdata]
,或按键/值将其拆分。这就是说,这闻起来像是一个实际的类,而不是一个简单的映射。@sschmeck它将打印一个哈希,但我不想要它。我希望键和值都在一个单独的变量中。将“{@metalsdata}”替换为“{@metalsdata[@metalsdata]。检查}”
@metals[@metalsdata]
,或按键/值将其拆分。这就是说,这闻起来像是一个实际的类,而不是一个简单的映射。@sschmeck它将打印一个哈希,但我不想要它。我希望键和值都在一个单独的变量中。