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
函数,而不是使用:=
初始化本地片
前往游乐场连结: