数组的Ruby哈希,检索值

数组的Ruby哈希,检索值,ruby,arrays,hash,Ruby,Arrays,Hash,我已经浏览了所有的互联网站,似乎无法找到如何访问散列中的数组。有很多方法可以迭代和展平,但没有简单的访问 hash = Hash.new() data1 = "foo" data2 = "bar" hash["foobar"] = {data1, data2} 这一切都起作用了,现在如何在散列中分别访问数据1和数据2 我想putshash[“foobar”][0]应该输出foo,但它返回nil 注意:散列中的每个数组正好有2个元素 我知道答案是一个简单的1行,我就是找不到它。正如我对这个问题的

我已经浏览了所有的互联网站,似乎无法找到如何访问散列中的数组。有很多方法可以迭代和展平,但没有简单的访问

hash = Hash.new()
data1 = "foo"
data2 = "bar"
hash["foobar"] = {data1, data2}
这一切都起作用了,现在如何在散列中分别访问数据1和数据2

我想puts
hash[“foobar”][0]
应该输出
foo
,但它返回
nil

注意:散列中的每个数组正好有2个元素


我知道答案是一个简单的1行,我就是找不到它。

正如我对这个问题的评论,数组文字是方括号
[]
,而不是大括号
{}
。将最后一行更改为:

hash["foobar"] = [data1, data2]

(您得到零可能是因为哈希文本没有
0
键。测试显示
显然可以充当
=>
(*抖动*),因此您的iteral相当于
{data1=>data2}

注意:Ruby对数组文本使用
[…]
,而不是
{…
(散列文字)。修复(代码的最后一行)可能有助于解决您的问题。Eureka!!!成功了!我访问的每个网站都使用了大括号。我会将其添加为答案。请将其添加到答案中,以便我可以对此进行检查。我的速度太慢了6秒:P