Heim >Backend-Entwicklung >Golang >Wie vermeide ich Codewiederholungen für Funktionen mit gemeinsam genutzten Feldern in Golang?
Vermeiden von Codewiederholungen für Funktionen mit gemeinsam genutzten Feldern in Golang
Um Codeduplizierung beim Schreiben von Funktionen für mehrere Strukturen mit identischen Feldern zu verhindern, berücksichtigen Sie Folgendes Folgender Ansatz:
Anstatt separate Funktionen für jede Struktur zu definieren, erstellen Sie einen benutzerdefinierten Typ für das gemeinsam genutzte Feld, z. B. Versionszeichenfolge. Dieser Typ kann als Methodenempfänger für die Funktion fungieren, die Sie implementieren möchten.
<code class="go">type Version string func (v Version) PrintVersion() { fmt.Println("Version is", v) }</code>
Fügen Sie in Ihren Strukturen den benutzerdefinierten Typ als Feld mithilfe der Zusammensetzung ein:
<code class="go">type Game struct { Name string MultiplayerSupport bool Genre string Version } type ERP struct { Name string MRPSupport bool SupportedDatabases []string Version }</code>
Jetzt Sie können auf das Feld „Version“ aus beiden Strukturen zugreifen und es drucken, indem Sie die dem benutzerdefinierten Typ zugeordnete Methode verwenden:
<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>
Mit diesem Ansatz können Sie Codewiederholungen vermeiden und gleichzeitig die Möglichkeit beibehalten, das Feld „Version“ aus verschiedenen Strukturen zu drucken. Indem Sie die Funktion als Methode eines benutzerdefinierten Typs definieren, stellen Sie sicher, dass für alle Strukturen, die diesen Typ einbetten, dieselbe Implementierung verwendet wird.
Das obige ist der detaillierte Inhalt vonWie vermeide ich Codewiederholungen für Funktionen mit gemeinsam genutzten Feldern in Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!