首页  >  文章  >  后端开发  >  Golang中如何避免具有共享字段的函数的代码重复?

Golang中如何避免具有共享字段的函数的代码重复?

DDD
DDD原创
2024-10-27 07:50:31863浏览

How to Avoid Code Repetition for Functions with Shared Fields in Golang?

避免 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn