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 중국어 웹사이트의 기타 관련 기사를 참조하세요!