”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > Golang中如何避免具有共享字段的函数的代码重复?

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

发布于2024-12-23
浏览:497

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

避免 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