我正在为我的方法使用表驱动测试,但在将值分配给结构数组字段时出现错误,情况如下所示。
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
。这有什么问题?
最佳答案
您使用的是命名类型 (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",
},
}
关于go - 如何给结构体的 slice 赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48186467/