gpt4 book ai didi

ruby - `each_with_object(Hash.new([]))` 是如何工作的?

转载 作者:太空宇宙 更新时间:2023-11-03 17:07:07 25 4
gpt4 key购买 nike

<分区>

我编写这段代码来创建一个散列,其中键是类别(水果或蔬菜),值是该类别中项目的数组。

food = ["fruit:orange", "fruit:apple", "fruit:cherry", "veg:pea", "veg:parsley"]

food.each_with_object(Hash.new([])) do |food_item, hash|
category, value = food_item.split(":")
hash[category] = hash[category].push(value)
end

这是我得到的:

# =>
{
"fruit" => ["orange", "apple", "cherry", "pea", "parsley"],
"veg" => ["orange", "apple", "cherry", "pea", "parsley"]
}

但我预料到这一点:

{
"fruit"=> ["orange", "apple", "cherry"],
"veg" => ["pea", "parsley"]
}

第一次迭代应该产生 { fruit: ["orange"] } ,第二个 { fruit: ["orange", "apple"] } 等等。 . 第四次迭代应该创建 veg 键,然后继续。蔬菜如何最终被推到水果数组,反之亦然?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com