无法在 go 中声明嵌入式结构的字段

帕卡莫尔

go名为kubesecretsPkgI包中声明以下两种结构类型:

type KubesecretsOpts struct {
    FullPathToRepo string
    FullPathToApp  string
}

type KubesecretsSetOpts struct {
    KubesecretsOpts
    Variable string
    Value    string
}

我正在尝试KubesecretsSetOpts在另一个包中初始化一个外部 ( ),如下所示:

        kSetOpts := kubesecretsPkg.KubesecretsSetOpts{
            kubesecretsPkg.KubesecretsOpts: {
                FullPathToRepo: fullPathToRepo,
                FullPathToApp:  fullPathToApp,
            },
            Variable: variable,
            Value:    value,
        }

这失败如下:

在此处输入图片说明

为什么我不能直接初始化嵌入式结构?

阿尼什

正确的语法是

   kSetOpts := kubesecretsPkg.KubesecretsSetOpts{
        KubesecretsOpts: kubesecretsPkg.KubesecretsOpts{
            FullPathToRepo: fullPathToRepo,
            FullPathToApp:  fullPathToApp,
        },
        Variable: variable,
        Value:    value,
    }

即使在这个范围内,结构中字段的名称也是“KubesecretsOpts”,但是字段类型是 kubesecretsPkg.KubesecretsOpts。由于此范围内的先前事实,您收到“无效字段名称”错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章