我正在对我的方法使用表驱动测试,但在将值赋给结构数组的字段时出错,情况如下所示。
var validStats = []struct{
status []v1.ReplicaStatus
}{
{
status: []v1.ReplicaStatus {
IP string
Status string
DataUpdateIndex string
}{
{
IP: "10.10.10.10",
Status: "Online",
DataUpdateIndex: "1",
},
{
IP: "10.10.10.11",
Status: "Online",
DataUpdateIndex: "1",
},
},
}
}
我在第6行和代码末尾收到错误missing ',' in composite literal
。这有什么问题?
答案 0 :(得分:5)
您正在使用命名类型(ReplicaStatus
),但随后尝试定义结构字段:
status: []v1.ReplicaStatus {
IP string
Status string
DataUpdateIndex string
}{
不要那样做。相反,这样做:
status: []v1.ReplicaStatus{
{
IP: "10.10.10.10",
Status: "Online",
DataUpdateIndex: "1",
},
{
IP: "10.10.10.11",
Status: "Online",
DataUpdateIndex: "1",
},
}
如果您使用的是未命名的类型,则只应在此上下文中定义字段名称,如:
status := []struct { // Notice this is now an anonymous struct type
IP string
Status string
DataUpdateIndex string
}{
{
IP: "10.10.10.10",
Status: "Online",
DataUpdateIndex: "1",
},
{
IP: "10.10.10.11",
Status: "Online",
DataUpdateIndex: "1",
},
}