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
}
이제 사용자 정의 유형에 연결된 메소드를 사용하여 두 구조체 모두에서 버전 필드에 액세스하고 인쇄할 수 있습니다.
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
}
이 접근 방식을 사용하면 다른 구조체에서 버전 필드를 인쇄하는 기능을 유지하면서 코드 반복을 피할 수 있습니다. 함수를 사용자 정의 유형의 메소드로 정의함으로써 해당 유형을 포함하는 모든 구조체에 동일한 구현이 사용되도록 할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3