![](/img/trans.png)
[英]How to set composite type array containing JSONB elements with a literal value?
[英]“missing type in composite literal” in golang
鉴于这些结构:
type InitRequest struct {
ListenAddr string
ForceNewCluster bool
Spec Spec
}
type Spec struct {
Annotations
AcceptancePolicy AcceptancePolicy `json:",omitempty"`
//...
}
type AcceptancePolicy struct {
Policies []Policy `json:",omitempty"`
}
type Policy struct {
Role NodeRole
Autoaccept bool
Secret *string `json:",omitempty"`
}
该代码无法编译,在该行上以复合文字中的缺少类型退出。 跟随Go,Golang:结构内部的数组类型,缺少复合文字 ,但是相同的错误:
swarm, err := cli.SwarmInit(context.Background(), swarm.InitRequest{
ListenAddr: "0.0.0.0:2377",
ForceNewCluster: true,
Spec: {
AcceptancePolicy: {
Policies: []Policy{
Policy: {
Role: "manager",
Autoaccept: true,
},
},
}, // here
},
})
任何提示都会非常有帮助,谢谢!
我发现您的代码存在一些问题:
AcceptancePolicy
中的“您的政策”字段是切片而不是地图 AcceptancePolicy
或Spec
的类型。 Role
是NodeRole
,而不是字符串 这是实现了上述修复的代码:
mySwarm, err := cli.SwarmInit(context.Background(), swarm.InitRequest{
ListenAddr: "0.0.0.0:2377",
ForceNewCluster: true,
Spec: swarm.Spec{
AcceptancePolicy: swarm.AcceptancePolicy{
Policies: []swarm.Policy{
{
Role: some.conversion.to.NodeRole("manager"),
Autoaccept: true,
},
},
}, // here
},
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.