【发布时间】:2022-01-02 18:58:43
【问题描述】:
定义一次结构并在另一个结构定义中使用它
type FormAction struct {
Data bool `yaml:"data,omitempty" json:"data,omitempty"`
Self bool `yaml:"self,omitempty" json:"self,omitempty"`
Blob bool `yaml:"blob,omitempty" json:"blob,omitempty"`
}
type ManifestSrc struct {
Data bool `yaml:"data,omitempty" json:"data,omitempty"`
Self bool `yaml:"self,omitempty" json:"self,omitempty"`
Blob bool `yaml:"blob,omitempty" json:"blob,omitempty"`
}
type PrefetchSrc struct {
Data bool `yaml:"data,omitempty" json:"data,omitempty"`
Self bool `yaml:"self,omitempty" json:"self,omitempty"`
Blob bool `yaml:"blob,omitempty" json:"blob,omitempty"`
}
我们如何减少相同成员的冗余?
【问题讨论】:
-
你可以做
type ManifestSrc FormAction。见:go.dev/ref/spec#Type_declarations -
…或使用field embedding。我真的建议在开始非玩具任务之前至少获得该语言的基本知识。
-
@mkopriva @kostix 这不适用于解组的东西。由于我们在 YAML 和 json 中没有任何要映射的内容 ``` FormAction: Data: true ManifestSrc: Self: true ``
-
@YashKatta “因为我们在 YAML 和 json 中没有要映射的东西......” -- 这不是问题的一部分,甚至来自评论我不清楚建议的解决方案的确切问题是什么。请通过解释为什么建议的解决方案还不够来更新您的问题,并提供您尝试使用所述建议的代码。并包含有关您遇到的错误的任何信息。
标签: go struct coding-style