空切片问题

sharkLoc · 2022-01-13 15:10:43 · 1360 次点击

首先,go的函数传参,返回都是拷贝。你可以把它理解成一个浅拷贝,而slice底层确实是结构体,函数修改的虽然是拷贝的数据,但是由于是浅拷贝,原来的slice和函数里的slice虽然不一样,但是共用同一个数组,只是通过下标修改值当然不会影响到底层的数组了啊!append扩容了之后,函数里面的slice绑定了一个新数组,当然不会影响到元slice了。1.PNG2.PNG

#17
更多评论

明白了,s1相当于已经做一次初始化,已经分配内存了,就不等于nil ss.png

#1

这种用法是不对的,不应该对slice进行nil判断,应该进行len()取长度

#2