我试图在作为参数传递给方法时打印出哈希键的值。
例如count_arara(3)会导致'adak anane'
def count_arara(n, h = {})
h.each do |k, v|
if n == h[k]
h[v]
end
end
end
count_arara(3, {
1 => 'anane',
2 => 'adak',
3 =>'adak anane',
4 =>'adak adak',
5 =>'adak adak anane',
6 =>'adak adak adak',
7 =>'adak adak adak anane',
8 =>'adak adak adak adak'
})
在没有告诉我答案的情况下,有没有人能帮助我走向正确的方向?
答案 0 :(得分:0)
哈希是一种保持键和值相关联的结构。
CODE_TO_NAME = {
'CH' => 'SWITZERLAND',
'DE' => 'GERMANY',
...
}
此处国家/地区代码(双字母字符串)是查找完整国家/地区名称的关键。 ' CH'是瑞士'瑞士'等等。
要打印两个字母代码的长国名,您可以这样做:
puts CODE_TO_NAME['CH']
这将打印"瑞士"。
现在在您的示例中,您循环遍历所有键/值对。如果密钥(3
匹配与该密钥关联的值。
您可能想要做类似的事情:
hash.each do |key, value|
if key == number
puts "value: #{value}"
end
end
但这过于复杂,并且有一种更容易的方法来查找与特定键相关联的值(这是哈希的用途):
puts hash[key]
我认为这应该足以重新考虑你的方法。此外,您应该为方法和参数提供更具描述性的名称。