package main
import "fmt"
func main() {
map1 := map[string]string{"key":"value"}
test1(map1)
fmt.Println(map1["key"])
}
func test1(map1 map[string]string) {
map1["key"] = "newValue"
}
输出:newValue
请问老师,test1函数接受的参数不是一个指针,应当是拷贝了一份map,为什么会影响到main函数的map值
展开
作者回复: map是一个结构,其中结构中包含一个指向数据存储空间的指针,所以虽然在传递过程中复制产生了一个新的结构对象,但其中的指向数据存储空间的指针值也被复制了,所以还是指向了同一块地址即同一数据存储空间