Go 死机:运行时错误:索引超出范围1

Go 死机:运行时错误:索引超出范围1,go,Go,我想不出这个问题,有人能帮忙吗 恐慌:运行时错误:索引超出范围 goroutine 1[正在运行]: 梅因,梅因 /root/go/src/k8s.io/client-go/examples/in-cluster-client-configuration/test_-json.go:15+0x42 type obj struct { Targets [2]string `json:"targets"` Labels map[string]string `json:"label

我想不出这个问题,有人能帮忙吗

恐慌:运行时错误:索引超出范围

goroutine 1[正在运行]: 梅因,梅因 /root/go/src/k8s.io/client-go/examples/in-cluster-client-configuration/test_-json.go:15+0x42

type obj struct {
    Targets [2]string  `json:"targets"`
    Labels  map[string]string `json:"labels"`
}

func main() {
    // Creating simulation
    var myobj = []*obj{}
    n := new(obj)
    myobj[0].Targets = [2]string{"10.0.0.1", "10.0.0.2"}
    myobj[0].Labels = make(map[string]string)
    myobj[0].Labels["job"] = "db2"
    myobj = append(myobj, n)
    k := new(obj)
    myobj[1].Targets = [2]string{"192.168.1.12", "192.168.1.13"}
    myobj[1].Labels = make(map[string]string)
    myobj[1].Labels["job"] = "mysql"
    myobj = append(myobj, k)

    // Converting to JSON, for transmission over web
    data, err := json.Marshal(myobj)
    if err != nil {
        fmt.Println(err)
        return
    }
您创建了一个obj n,然后在尝试附加它之前对它不做任何操作。所以myobj中还没有OBJ


我终于明白了XD

type obj struct {
    Targets []string  `json:"targets"`
    Labels  map[string]string `json:"labels"`
}

func main() {
    // Creating simulation
    var myobj = []*obj{}
    n := new(obj)
    n.Targets = append(n.Targets, "10.0.0.1")
    n.Labels = make(map[string]string)
    n.Labels["job"] = "db2"
    myobj = append(myobj, n)
    k := new(obj)
    k.Targets = append(k.Targets, "192.168.1.12")
    k.Targets = append(k.Targets, "192.168.1.13")
    k.Labels = make(map[string]string)
    k.Labels["job"] = "mysql"
    myobj = append(myobj, k)
type obj struct {
    Targets []string  `json:"targets"`
    Labels  map[string]string `json:"labels"`
}

func main() {
    // Creating simulation
    var myobj = []*obj{}
    n := new(obj)
    n.Targets = append(n.Targets, "10.0.0.1")
    n.Labels = make(map[string]string)
    n.Labels["job"] = "db2"
    myobj = append(myobj, n)
    k := new(obj)
    k.Targets = append(k.Targets, "192.168.1.12")
    k.Targets = append(k.Targets, "192.168.1.13")
    k.Labels = make(map[string]string)
    k.Labels["job"] = "mysql"
    myobj = append(myobj, k)