gpt4 book ai didi

json - golang 中的 "missing type in composite literal"

转载 作者:IT王子 更新时间:2023-10-29 01:51:06 28 4
gpt4 key购买 nike

给定这些结构:

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 : array type inside struct, missing type composite literal ,但同样的错误:

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
},
})

任何提示都会很有帮助,谢谢!

最佳答案

我发现您的代码存在一些问题:

  1. AcceptancePolicy 中的 Policies 字段是 slice 而不是映射
  2. 您没有指定 AcceptancePolicySpec 的类型。
  3. 您正在命名一个与导入包相同的变量。
  4. 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
},
})

关于json - golang 中的 "missing type in composite literal",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38382527/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com