我试图从哈希数组中访问一个值.示例数组如下所示:
family = [
[
{ "Homer" => 1, "Marge" => 2, "Lisa" => 3, "Maggie" => 4,
"Abe" => 5, "Santa's Little Helper" => 6
}
],
[
{ "Homer" => 2, "Marge" => 4, "Lisa" => 6,
"Maggie" => 8, "Abe" => 10, "Santa's Little Helper" => 12
}
]
]
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用下面的语句访问"Homer"数组indexed 0(family[0])中的键的哈希值,并希望获得值1:
family[0]["Homer"]
Run Code Online (Sandbox Code Playgroud)
我收到一个错误
"test.rb:4:in `[]': can't convert String into Integer (TypeError)"
Run Code Online (Sandbox Code Playgroud)
在一个简单的语句中,有关如何能够在这样的数组中访问哈希值的任何建议?
你应该试试family[0][0]["Homer"].
在你的情况下family[0]给你:
[{ "Homer" => 1, "Marge" => 2, "Lisa" => 3, "Maggie" => 4, "Abe" => 5,"Santa Little Helper" => 6}]
Run Code Online (Sandbox Code Playgroud)
这是一个数组.你想要的哈希是在它里面,可以得到family[0][0]:
{ "Homer" => 1, "Marge" => 2, "Lisa" => 3, "Maggie" => 4, "Abe" => 5,"Santa Little Helper" => 6}
Run Code Online (Sandbox Code Playgroud)
所以你现在可以使用family[0][0]["Homer"]哪个会给你价值1.
数组索引始终是数值.如果您收到can't convert String into Integer (TypeError)错误消息,则会引发异常,因为您尝试使用无法转换为整数的字符串来访问数组元素.