尽管映射总是引用类型,但如果它们是从非指针接收器返回的呢?

据说映射是 Go 中的引用类型,因此当从函数返回它们时,您不需要作为指向映射的指针传递,以便在函数体外部可见更改。但是如果所述映射是从非指针结构上的方法返回的呢?


例如:


type ExampleMapHolder struct {

    theUnexportedMap map[string]int

}


func (emp ExampleMapHolder) TheMap() map[string]int {

    return emp.theUnexportedMap

}

如果我调用TheMap(),然后修改其中的值,即使接收者不是指针,此更改是否会在其他地方可见?我想它会返回对属于 ExampleMapHolder 副本的地图的引用,但无法在文档中找到明确的答案。


森栏
浏览 130回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go