Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 打印与密钥对应的嵌套哈希值_Ruby - Fatal编程技术网

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它将打印一个哈希,但我不想要它。我希望键和值都在一个单独的变量中。