golang 定义一次结构并在另一个结构定义中使用它

golang Define struct once and use it in another struct definition

定义一次结构并在另一个结构定义中使用它

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 entity 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 FormAction struct {
    entity
}
type ManifestSrc struct {
    entity
}
type PrefetchSrc struct {
    entity
    AnotherField string // For example
}