b = a;
();
如果b的修改不会改变a的值,那么是传值;否则,是传引用
中大多数是传值的,有:基本类型:byte,int,bool,string
复合类型:数组,数组切片,结构体,map,channnel
3.数组:
3.1 传值
func main() {
var array = [3]int{0, 1, 2}
var array2 = array
slice2[2] = 5
(array, array2)
}
输出结果:[0 1 2] [0 1 5]
3.2.传引用的使用方法:
func main() {
var array = [3]int{0, 1, 2}
var array2 = &array
array2[2] = 5
(array, *array2)
}
输出结果:[0 1 5] [0 1 5]
4.数组切片看这篇博文:
/cyk2396/article/details/78893420
结构体:
在函数中参数的传递可以是传值(对象的复制,需要开辟新的空间来存储该新对象)和传引用(指针的复制,和原来的指针指向同一个对象),建议使用指针,原因有两个:能够改变参数的值,避免大对象的复制操作节省内存。struct和数组的用法类似
看这篇博文:
/cyk2396/article/details/78890185
:
channel和数组切片,map一样,传参的方式是传值,都可以直接使用,其内部维护着指向真正存储空间的指针。