golang的slice作为函数参数传值的坑

ziyouchutuwenwu ·
第一段代码里面,那是两个不同的slice对象,虽然他们底层数据是同一块,自然就不能将主函数里面的slice修改了 第二段代码里面,那是个指针,你产生了一个新的slice对象,你再把新的slice对象赋给指针,调用函数之前和之后指针指向的地址是不同的。 slice是引用类型,它的底层数据是同一块,使用append会产生一个新的对象,slice类型除了底层数据还有其他的数据,而长度未超过容量时,还是同一块区域。
#1
更多评论
说错了,第二段代码,指针地址是一样的,但你把原来的slice类型数据用函数里面新的slice都覆盖了
#2