如何在Ruby中的哈希中放入一个哈希数组?

Jas*_*nes 1 ruby arrays hash

Perl有一个关于数组和散列组合的非常好的文档,但我找不到Ruby的一个.

当我尝试

data = {
  "key" => "value",
  [{"name"=>"abc", "number"=>898, "email"=>"abc@xyz.com"}]
}

p data
Run Code Online (Sandbox Code Playgroud)

我收到以下错误.我究竟做错了什么?

test.rb:3: syntax error, unexpected '\n', expecting =>
Run Code Online (Sandbox Code Playgroud)

shi*_*vam 6

哈希必须是键值对.但是你的第二个元素不是:

[{"name"=>"abc", "number"=>898, "email"=>"abc@xyz.com"}]
Run Code Online (Sandbox Code Playgroud)

它应该是这样的:

data = {
  "key" => "value",
  "array" => [{"name"=>"abc", "number"=>898, "email"=>"abc@xyz.com"}]
}
Run Code Online (Sandbox Code Playgroud)

如你所见,我添加了一个"array"有价值的新密钥[{"name"=>"abc", "number"=>898, "email"=>"abc@xyz.com"}].由于这符合Hash定义,因此不会出现错误.只要您有钥匙,您就可以为钥匙命名.


Ser*_*sev 6

也许你的意思是"阵列和散列的结合"

data = [
  { "key" => "value"},
  [{"name"=>"abc", "number"=>898, "email"=>"abc@xyz.com"}]
]
Run Code Online (Sandbox Code Playgroud)

这是一个由两个元素组成的数组:散列和散列数组.是否是你想要的东西 - 我无法分辨(从你的问题).

  • 有趣的观点.那根本没发生在我身上:) (2认同)