簡體   English   中英

golang中的“復合文字中的缺少類型”

[英]“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
    },
})

任何提示都會非常有幫助,謝謝!

我發現您的代碼存在一些問題:

  1. AcceptancePolicy中的“您的政策”字段是切片而不是地圖
  2. 您沒有指定AcceptancePolicySpec的類型。
  3. 您要為變量命名與導入包相同。
  4. RoleNodeRole ,而不是字符串

這是實現了上述修復的代碼:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM