Heim  >  Artikel  >  Backend-Entwicklung  >  Wie vermeide ich Codewiederholungen für Funktionen mit gemeinsam genutzten Feldern in Golang?

Wie vermeide ich Codewiederholungen für Funktionen mit gemeinsam genutzten Feldern in Golang?

DDD
DDDOriginal
2024-10-27 07:50:31863Durchsuche

How to Avoid Code Repetition for Functions with Shared Fields 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn