Loops 戈朗再结晶问题

Loops 戈朗再结晶问题,loops,go,append,slice,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 我为所有迭代打印了切片的len和cap,但它们似乎在按预期为每个迭代递减1 更新: 我发现了这个问题

我目前正在一个切片上循环,每次都删除第一个元素

为此,我使用以下代码:

mySlice = append(mySlice[1:])
在最初的几次迭代中,一切都很顺利,但在以后的几次迭代中,有些元素被删除,有些元素被复制:

之前:

40.917
37.6384
41.2783
38.1481
之后:

40.917
37.6384
41.2783
37.6384
41.2783
38.1481
我为所有迭代打印了切片的
len
cap
,但它们似乎在按预期为每个迭代递减
1

更新:

我发现了这个问题:似乎即使我只是将我的切片传递给另一个函数来创建一个本地切片,但如果我操作本地切片,我的原始切片也会受到影响(哦!)


去操场链接:

我终于明白了

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

前往游乐场连结: