なぜ削除ができなかったと言えるのでしょうか。
個人blogのリンクで申し訳ありませんが、capはそのままのようです。https://gawawa124.hatenablog.com/entry/2015/04/09/190000
表題通りですが、あるスライスから特定の場所(インデックス)を消したいのですが
うまく消すことができません。
Go
1func hoge() ([]volumes.Volume, error) { 2 var filteredVolumes []volumes.Volume 3 4 for _, fsv := range filteredStatusVolumes { 5 filteredVolumes = append(filteredVolumes, fsv) 6 } 7 8 for _, fav := range filteredAzVolumes { 9 filteredVolumes = append(filteredVolumes, fav) 10 } 11 12 for _, fsv := range filteredSizeVolumes { 13 filteredVolumes = append(filteredVolumes, fsv) 14 } 15 16 if mapFilter["az"] != nil { 17 for i, fv := range filteredVolumes { 18 if fv.AvailabilityZone != mapFilter["az"].(string) { 19 filteredVolumes = remove(filteredVolumes, i) 20 } 21 } 22 } 23 24 return filteredVolumes, nil 25} 26 27func remove(vols []volumes.Volume, i int) []volumes.Volume { 28 return append(vols[:i], vols[i+1:]...) 29}
filteredVolumes
が大きなスライスで
Go
1if mapFilter["az"] != nil { 2 for i, fv := range filteredVolumes { 3 if fv.AvailabilityZone != mapFilter["az"].(string) { 4 filteredVolumes = remove(filteredVolumes, i) 5 } 6 } 7 }
ここで、該当するインデックスのスライスの要素をしています。
しかし結果として削除はされません。
何故でしょうか。
あなたの回答
tips
プレビュー