Golang Reslicing Issue

时间:2017-07-01 12:59:31

标签: loops go append slice

我目前正在循环切片并每次删除第一个元素。

为此,我使用以下代码:

mySlice = append(mySlice[1:])

前几次迭代的一切都很顺利,但是在后来的几次迭代中,一些元素被删除,一些元素被重复:

在:

40.917
37.6384
41.2783
38.1481

后:

40.917
37.6384
41.2783
37.6384
41.2783
38.1481

我为所有迭代打印了切片的lencap,但是对于每次迭代,它们似乎按预期递减1

更新

我想出了问题:似乎即使我只是将我的切片传递给另一个函数来创建局部切片,如果我操纵局部切片,我的原始切片也会受到影响(D'哦! )。

Go Playground Link:https://play.golang.org/p/ca57tgusXD

1 个答案:

答案 0 :(得分:0)

我终于明白了!

我需要使用copy函数,而不是使用:=初始化我的本地切片。

Go Playground Link:https://play.golang.org/p/N9RzHOibdI