Golang地图是按值还是按引用查找?

布伦丹:

当我从Go中的地图中检索结构时,是否可以获得该值的副本?还是获得地图中的实际值?

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

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

我想修改一个条目。

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

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

还是我还必须返回并修改地图中的内容?

c := cookies["nutrageous"]
c.goodness += 5
cookies["nutrageous"] = c
松饼上衣:

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

按值分配还是按引用分配?

Java是按引用还是按值返回

Python-按值还是按引用

.bind(this)是按引用还是按值传递?

Ruby是按引用传递还是按值传递?

PowerShell函数参数-按引用还是按值?

ELM是按引用传递还是按值传递?

python pandas dataframe,是按值传递还是按引用传递

PHP变量是按值还是按引用传递?

Kotlin是“按值传递”还是“按引用传递”?

我应该按引用还是按值传递大型数组?

vala是“按引用传递”还是“按值传递”?

Swift函数是按值还是按引用分配/传递?

是按值还是按引用分配Excel VBA?

按值还是按引用返回 unique_ptr?

Java中的“按值传递”还是“按引用传递”?

从右值引用合格成员函数按值还是按右值引用返回?

我应该按值还是按r值引用来获取返回值?

在Java中设置相等:按值还是引用?

python递归通过引用还是按值传递?

困惑,当对象引用被传递时,java是使用按值调用还是按引用调用?

按引用与按值的JavaScript

在地图上按值谓词查找的惯用方式

如果 VAR_INPUT 是 INTERFACE 类型,那么值是按引用传递还是按值传递?

按引用对象与按值引用

std :: map是按引用,按值分配分配器还是将其纯粹用作类型?

我应该按值还是按引用传递函数对象?

在Java中是按值传递数组还是按引用传递数组?

在C ++中按值传递还是按常量引用传递更好?