gpt4 book ai didi

dictionary - golang map 是按值查找还是按引用查找?

转载 作者:IT王子 更新时间:2023-10-29 01:49:15 25 4
gpt4 key购买 nike

当我从 Go 中的映射中检索结构时,是否会得到该值的副本?还是获取 map 中的实际值?

例如,假设我有一个从字符串到结构的映射:

type quality struct {
goodness int
crunchiness int
}
cookies := make(map[string]quality)
cookies["nutrageous"] = quality{goodness: 3, crunchiness: 10}

我想修改一个条目。

我可以指望返回值与 map 中的值相同吗?

c := cookies["nutrageous"]
c.goodness += 5

或者我还必须返回并修改 map 中的内容吗?

c := cookies["nutrageous"]
c.goodness += 5
cookies["nutrageous"] = c

最佳答案

索引 map 返回 map 值的副本。如果映射值是结构,则对返回的结构值的修改不会更改映射中的结构值。您必须将修改后的值分配回 map 。

如果该值是指向结构的指针,则可以通过存储在映射中的指针访问对该结构的修改。

关于dictionary - golang map 是按值查找还是按引用查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38729760/

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