英文:
golang Define struct once and use it in another struct definition
问题
可以通过定义一个包含这些重复成员的结构体,并在其他结构体定义中使用它来减少冗余。例如:
type CommonMembers 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 {
CommonMembers
}
type ManifestSrc struct {
CommonMembers
}
type PrefetchSrc struct {
CommonMembers
}
通过将重复的成员定义在一个名为CommonMembers
的结构体中,并在其他结构体中嵌入该结构体,可以避免重复定义相同的成员。这样做可以减少代码冗余,并提高代码的可维护性。
英文:
Define struct once and use it in another struct defination
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"`
}
how we can reduce the redundancy of same members ?
答案1
得分: 1
可能是在多个结构体中定义相同字段而不重复自己的最典型方式是使用嵌入,因为它仍然允许你添加其他字段,例如:
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 // 例如
}
英文:
Probably the most idiomatic way of defining the same fields in multiple structs without repeating yourself is to use embedding, because it still allows you to add other fields, eg:
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
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论