Ich bin derzeit Schleife über eine Scheibe und das Entfernen des ersten Elements jedes Mal.Golang Reslicing Problem
so zu tun, ich den folgenden Code verwenden:
mySlice = append(mySlice[1:])
Alles geht für die ersten paar Iterationen in Ordnung, aber auf späteren, bekommen einige Elemente entfernt und einige dupliziert erhalten:
Vor :
40.917
37.6384
41.2783
38.1481
Nach:
40.917
37.6384
41.2783
37.6384
41.2783
38.1481
Ich habe die len
und cap
der Scheibe für alle Iterationen gedruckt, aber sie scheinen für jede Iteration wie erwartet zu 1
zu dekrementieren.
UPDATE:
ich das Problem herausgefunden: Es scheint, dass, obwohl ich auf eine andere Funktion meine Scheibe am Übergang einfach eine lokale Scheibe zu schaffen, wenn ich die lokale Scheibe, meine ursprüngliche Scheibe wird betroffen manipulieren auch (D'oh!).
Go Spielplatz-Link: https://play.golang.org/p/ca57tgusXD