【Map 类型】
先看例子:
func main() {
m1 := make(map[int]int)
mdMap1(m1)
fmt.Println(m1) //实参的内容改变了 => map[2:200 1:100]
var m2 map[int]int //只是声明,并未分配内存
chgMap2(m2)
fmt.Println(m2) //实参的内容并未改变 => map[]
}
func chgMap1(m11 map[int]int) {
m[1] = 10
m[2] = 20
}
func chgMap2(m22 map[int]int) {
m22 = make(map[int]int)
m22[1] = 100
m22[2] = 200
}
要理解上面的执行结果,需要明确:在Go语言中不存在引用传递,所有的参数传递都是值传递。
现在再来分析一下执行过程,如图:
1. 调用chgMap1和chgMap2函数: