0

我一直在互联网上,似乎无法找出如何访问散列中的数组。有很多迭代和扁平化的方法,但没有简单的访问。

hash = Hash.new()
data1 = "foo"
data2 = "bar"
hash["foobar"] = {data1, data2}

这一切都有效,现在我如何在哈希中单独访问 data1 和 data2 ?

我在想 putshash["foobar"][0]应该输出foo,但它会返回nil

注意:散列中的每个数组都将有 2 个元素。

我知道答案是一个简单的 1 班轮,我似乎找不到它。

4

1 回答 1

2

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

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

(你得到 nil大概是因为散列文字没有0键。这里的测试表明它,显然可以作为=>(*shudder*) 发挥作用,所以你的 iteral 相当于{data1 => data2}。)

于 2013-04-19T03:15:33.740 回答