2017-07-01 4 views
0

現在、スライスをループして、毎回最初の要素を削除しています。そうするにはゴランリサイズの問題

、私は次のコードを使用しています:

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だけ減少しているようです。

UPDATE:

私はこの問題を考え出した:私は単に地元のスライスを作成するために、別の関数に私のスライスを渡していていても、私は地元のスライスを操作する場合は、私のオリジナルのスライスが影響を受けますようです同様に(D'oh!)。

行く遊び場リンク:https://play.golang.org/p/ca57tgusXD

答えて

0

私はついにそれを考え出しました!

ローカルスライスを:=で初期化する代わりに、copy関数を使用する必要がありました。

移動プレイグラウンド:https://play.golang.org/p/N9RzHOibdI

関連する問題