避免 Golang 中具有共享字段的函数的代码重复
为具有相同字段的多个结构体编写函数时要防止代码重复,请考虑以下方法:
不要为每个结构体定义单独的函数,而是为共享字段创建自定义类型,例如版本字符串。该类型可以充当您要实现的功能的方法接收器。
type Version string
func (v Version) PrintVersion() {
fmt.Println("Version is", v)
}
在您的结构中,使用组合将自定义类型包含为字段:
type Game struct {
Name string
MultiplayerSupport bool
Genre string
Version
}
type ERP struct {
Name string
MRPSupport bool
SupportedDatabases []string
Version
}
现在,您可以使用附加到自定义类型的方法访问并打印两个结构体中的 Version 字段:
func main() {
g := Game{
"Fear Effect",
false,
"Action-Adventure",
"1.0.0",
}
g.PrintVersion()
// Version is 1.0.0
e := ERP{
"Logo",
true,
[]string{"ms-sql"},
"2.0.0",
}
e.PrintVersion()
// Version is 2.0.0
}
这种方法允许您避免代码重复,同时保持从不同结构打印 Version 字段的能力。通过将函数定义为自定义类型的方法,您可以确保嵌入该类型的所有结构使用相同的实现。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3