所以我试图在这里搜索,但没有找到任何东西。我刚刚开始尝试学习红宝石,并试图建立一个猜谜游戏,它只会提示"国家"那么我们将不得不猜测"区域的正确答案。我们想访问一个例子。
下面是一个示例代码,以帮助可视化我想要做的事情:
places =[
{
Country: "Japan",
Area: "Tokyo"
}, {
Country: "Korea",
Area: "Seoul"
}]
guess = places.each_value do |guessing|
print guessing
end
我尝试过做一些事情,说我可以通过.each_value
抓住价值但是,它给了我一个错误。
那么我如何为每个用户输入进行某种形式的迭代,但是首先提示实际的特定国家,然后检查该区域?
答案 0 :(得分:1)
数组没有方法each_value
。由于你有一个哈希数组,你需要用each
迭代数组,然后用里面的哈希做任何你想做的事。
places =[
{
Country: "Japan",
Area: "Tokyo"
}, {
Country: "Korea",
Area: "Seol"
}]
guess = places.each do |hash|
print hash
end
答案 1 :(得分:1)
您可以这样做:
places.each { |hash|
puts "Guess area for #{hash[:Country]}"
guess = gets.chomp
if hash[:Area] == guess
puts 'correct'
else
puts 'incorrect'
end
}
或者考虑做这样的事情:
places = { "Japan": "Tokyo", "Korea": "Seol" }
places.each { |country, area|
puts "Guess area for #{country}"
guess = gets.chomp
puts area == guess ? 'correct' : 'incorrect'
}
在这里,我们重新构建了您的数据,仅使用哈希值,然后使用三元运算符打印答案的正确性。