避免 Golang 中具有共享字段的函数的代码重复
为具有相同字段的多个结构体编写函数时要防止代码重复,请考虑以下方法:
不要为每个结构体定义单独的函数,而是为共享字段创建自定义类型,例如版本字符串。此类型可以充当您要实现的函数的方法接收器。
<code class="go">type Version string func (v Version) PrintVersion() { fmt.Println("Version is", v) }</code>
在您的结构中,使用组合将自定义类型包含为字段:
<code class="go">type Game struct { Name string MultiplayerSupport bool Genre string Version } type ERP struct { Name string MRPSupport bool SupportedDatabases []string Version }</code>
现在,您可以使用附加到自定义类型的方法访问和打印两个结构中的版本字段:
<code class="go">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 }</code>
此方法允许您避免代码重复,同时保持从不同结构打印版本字段的能力。通过将函数定义为自定义类型的方法,您可以确保嵌入该类型的所有结构体使用相同的实现。
以上是Golang中如何避免具有共享字段的函数的代码重复?的详细内容。更多信息请关注PHP中文网其他相关文章!