在golang中只有三种引用类型它们分别是切片slice、字典map、管道channel。其它的全部是值类型,引用类型可以简单的理解为指针类型,它们都是通过make完成初始化
看下面两个例子:
a :=[5]int{2,3,4,5,6}
b := a
b[2]=77
fmt.Println(a,b)
上面定义了一个数组a,它是值类型,复制给b是copy,当b发生变化后a并不会发生任何变化,结果如下:
[2 3 4 5 6] [2 3 77 5 6]
但如果是切片则不然
a :=[]int{2,b)
a和b本质上指向同一个底层数组
[2 3 77 5 6] [2 3 77 5 6]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。