在名为go的kubesecretsPkg包中,我声明了以下两种结构类型:
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,
}这样做失败的原因如下:

为什么我不能直接初始化嵌入式结构?
发布于 2020-07-05 09:56:20
正确的语法是
kSetOpts := kubesecretsPkg.KubesecretsSetOpts{
KubesecretsOpts: kubesecretsPkg.KubesecretsOpts{
FullPathToRepo: fullPathToRepo,
FullPathToApp: fullPathToApp,
},
Variable: variable,
Value: value,
}即使在这个范围内,结构中的字段名也是"KubesecretsOpts“,但是字段的类型是kubesecretsPkg.KubesecretsOpts。由于此范围中以前的事实,您将得到“无效字段名”错误。
https://stackoverflow.com/questions/62739060
复制相似问题