我正在使用表驱动测试我的方法,但在将值分配给结构数组的字段时出错,情况如下所示.
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",
},
},
}
}
Run Code Online (Sandbox Code Playgroud)
我missing ',' in composite literal在第6行和代码末尾收到错误.这有什么问题?
您正在使用命名类型(ReplicaStatus),但随后尝试定义结构字段:
status: []v1.ReplicaStatus {
IP string
Status string
DataUpdateIndex string
}{
Run Code Online (Sandbox Code Playgroud)
不要那样做.相反,这样做:
status: []v1.ReplicaStatus{
{
IP: "10.10.10.10",
Status: "Online",
DataUpdateIndex: "1",
},
{
IP: "10.10.10.11",
Status: "Online",
DataUpdateIndex: "1",
},
}
Run Code Online (Sandbox Code Playgroud)
如果使用未命名的类型,则应仅在此上下文中定义字段名称,如下所示:
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",
},
}
Run Code Online (Sandbox Code Playgroud)