初始化第三方库的一部分结构

时间:2019-07-28 18:21:57

标签: go

我想初始化一个结构片(这些结构的类型为&dns.ResourceRecordSet),其中dns是Google云dns库。我正在尝试这样的事情

    rr := []*gcp.ResourceRecordSet {
    }{
        &gcp.ResourceRecordSet{
            Name:    "example.gcp.com",
            Ttl:     21600,
            Type:    "NS",
            Rrdatas: []string{"ns-cloud-c1.googledomains.com.", "ns-cloud-c2.googledomains.com.", "ns-cloud-c3.googledomains.com.", "ns-cloud-c4.googledomains.com."},
        },
        &gcp.ResourceRecordSet{
            Name:    "example.gcp.com",
            Ttl:     21600,
            Type:    "NS",
            Rrdatas: []string{"ns-cloud-c1.googledomains.com.", "ns-cloud-c2.googledomains.com.", "ns-cloud-c3.googledomains.com.", "ns-cloud-c4.googledomains.com."},
        },
    }

但是我在第二行的右括号上说expected ';', found '{'时出错。

正确的语法是什么?

1 个答案:

答案 0 :(得分:1)

您应该拥有多余的}{,代码应如下所示:

rr := []*gcp.ResourceRecordSet {
    &gcp.ResourceRecordSet{
        Name:    "example.gcp.com",
        Ttl:     21600,
        Type:    "NS",
        Rrdatas: []string{"ns-cloud-c1.googledomains.com.", "ns-cloud-c2.googledomains.com.", "ns-cloud-c3.googledomains.com.", "ns-cloud-c4.googledomains.com."},
    },
    &gcp.ResourceRecordSet{
        Name:    "example.gcp.com",
        Ttl:     21600,
        Type:    "NS",
        Rrdatas: []string{"ns-cloud-c1.googledomains.com.", "ns-cloud-c2.googledomains.com.", "ns-cloud-c3.googledomains.com.", "ns-cloud-c4.googledomains.com."},
    },
}

您正在使用具有结构文字(的地址)的元素创建切片文字。切片文字如下所示:

rr := []TYPE{
  element,
  element,
}

您改为拥有

rr := []TYPE{
}{
  element,
  element,
}