据说映射是 Go 中的引用类型,因此当从函数返回它们时,您不需要作为指向映射的指针传递,以便在函数体外部可见更改。但是如果所述映射是从非指针结构上的方法返回的呢?
例如:
type ExampleMapHolder struct {
theUnexportedMap map[string]int
}
func (emp ExampleMapHolder) TheMap() map[string]int {
return emp.theUnexportedMap
}
如果我调用TheMap(),然后修改其中的值,即使接收者不是指针,此更改是否会在其他地方可见?我想它会返回对属于 ExampleMapHolder 副本的地图的引用,但无法在文档中找到明确的答案。
相关分类