写代码被go的slice坑过几次了,特地写个文章记录一下自己遇到的坑,主要还是以前看书的时候没有太在意,
坑1 : 定义了一个slice以后,一般默认长度都是0,所以网里面加元素就out of range,所以需要使用append来新加元素,这样才能扩展内存
坑2:虽然是传址引用,但是呢是只用到了调用方自己用到的那一段的长度,所以在被调用方里面就行的添加操作不生效,但是在调用方内了修改操作是可以生效的。解决办法就是在调用方就增加它的长度,但是会引入其它的坑
坑3:如果你用make创建了一个slice,但是指定的长度不是0,那么所有的值就是默认值,并且使用range函数还是可以遍历的
坑4: 使用copy函数复制数据的时候,如果有定义好的长度的剩余空间,就可以,否则会导致无法全部复制过来
网友评论