ここから削除の例を使用して、スライスから複数のアイテムを削除しようとしています: http://code.google.com/p/go-wiki/wiki/SliceTricks ここに私が持っているコードがあります:
package main
import "fmt"
import "net"
func main() {
a := []string{"72.14.191.202", "69.164.200.202", "72.14.180.202", "2600:3c00::22", "2600:3c00::32", "2600:3c00::12"}
fmt.Println(a)
for index, element := range a {
if net.ParseIP(element).To4() == nil {
//a = append(a[:index], a[index+1:]...)
a = a[:index+copy(a[index:], a[index+1:])]
}
}
fmt.Println(a)
}
スライスに IPv6 アドレスが 1 つしかない場合はコードが正常に機能しますが、IPv6 アドレスが複数ある場合は失敗します。「パニック: ランタイム エラー: スライス境界が範囲外」というエラーで失敗します。すべての IPv6 アドレスを削除できるように、このコードを修正するにはどうすればよいですか?