【发布时间】:2020-09-29 05:13:57
【问题描述】:
Ruby 初学者。在散列中添加了散列,但无法将更多键和值“添加”到散列中,而无需覆盖新散列中的第一个键和值。示例代码:
contacts = {
"Jason" => {
"phone" => 833,
"twitter" => "sliceyboi",
"email" => "crystal@lake"
},
"Freddy" => {
"phone" => 666,
"tiktok" => "asdf",
"instagram" => "def",
"email" => "in.your@dreams"
}
}
while true
puts contacts
new_key_and_value = {}
puts "add name"
name_key = gets.chomp
puts "add media:"
new_key = gets.chomp
puts "add #{new_key} info:"
new_value = gets.chomp
new_key_and_value[new_key] = new_value
contacts[name_key] = new_key_and_value
end
我可以添加“Chucky”“电子邮件:doll@toys”。但如果我再次检查,对于 Chucky 或其中任何一个的任何名称,我希望添加更多媒体,而不是覆盖。我知道这与创建的新哈希有关。
例如它的作用:
add name
>Chucky
add media:
>email
add email info:
> doll@toys
{"Jason"=>
{ "phone"=>833,
"twitter"=>"sliceyboi",
"email"=>"crystal@lake"},
"Freddy"=>
{"phone" => 666,
"tiktok" => "asdf",
"instagram" => "def",
"email" => "in.your@dreams"},
"Chucky"=>
{"email"=>"doll@toys"}
}
add name
>Chucky
add media:
>tiktok
add tiktok info:
>chplay
{"Jason"=>
{ "phone"=>833,
"twitter"=>"sliceyboi",
"email"=>"crystal@lake"},
"Freddy"=>
{"phone" => 666,
"tiktok" => "asdf",
"instagram" => "def",
"email" => "in.your@dreams"},
"Chucky"=>
{"tiktok"=>"chplay"}
}
寻找:
{"Jason"=>
{ "phone"=>833,
"twitter"=>"sliceyboi",
"email"=>"crystal@lake"},
"Freddy"=>
{"phone" => 666,
"tiktok" => "asdf",
"instagram" => "def",
"email" => "in.your@dreams"},
"Chucky"=>
{"email"=>"doll@toys",
"tiktok"=>"chplay",
}
}
这样它就会添加到 Chucky 哈希的末尾
【问题讨论】:
-
我建议每当你给出一个例子时,你都会展示预期的结果(作为一个 Ruby 对象)。这往往对读者有帮助。