Go语言中Map类型的传递

【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函数:


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值