从切片中删除多个项目

我正在尝试使用此处的删除示例从切片中删除多个项目: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 地址,则代码可以正常工作,但如果有多个 IPv6 地址,则代码会失败。它因错误“恐慌:运行时错误:切片边界超出范围”而失败。我应该怎么做才能修复此代码才能删除所有 IPv6 地址?


慕斯709654
浏览 204回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go