变量赋值
Golang中所有的变量都是值赋值,那么数组、chan、map等,需要make的对象是怎么操作的?
自测发现
这些需要make的对象是引用赋值,也就是说新变量和旧变量操作的是同一个内存空间。
但是我们自己定义的struct都会把里面的成员一个一个的复制过去。
如果我们struct里有数组、chan、map时,对他们的复制还是引用,也就是说
数组、chan、map这些变量只有引用赋值,不会产生值赋值的情况。
或理解数组、chan、map这些变量的值就是那块内存的地址,也就是说他们都是制定类型的指针。
但是
[]int 与*[]int还是不一样
var a []int
var p*[]int
只有 p=&a
不能 p=a
但实际上p和a在使用上是一样的。