slice在函数参数传递过程中是值传递还是引用类型传递?
严格来说,是值传递,但是又呈现出了引用传递的效果
上面图片显示出现了引用传递的现象
但是下面的图片又不符合引用传递的现象了
Slice基本原理
本质是一个结构体
上面的图片也解释了为什么是用append函数的时候,为什么要加一个返回值,因为这样很容易引发扩容,扩容之后的地址就变了
//在append函数中,这个是值传递
//无权修改courses的地址,扩容会引发地址的改变,我们需要用courses来接收一下新的数组
courses = append(courses, "abc")
下面再用一个具体的案例来演示一下
下面是扩容一下