„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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?

Veröffentlicht am 23.12.2024
Durchsuche:909

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.

type Version string

func (v Version) PrintVersion() {
    fmt.Println("Version is", v)
}

Fügen Sie in Ihre Strukturen den benutzerdefinierten Typ als Feld ein, indem Sie die Zusammensetzung verwenden:

type Game struct {
    Name               string
    MultiplayerSupport bool
    Genre              string
    Version
}

type ERP struct {
    Name               string
    MRPSupport         bool
    SupportedDatabases []string
    Version
}

Jetzt können Sie von beiden Strukturen aus auf das Versionsfeld zugreifen und es drucken, indem Sie die an den benutzerdefinierten Typ angehängte Methode verwenden:

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

}

Mit diesem Ansatz können Sie Codewiederholungen vermeiden und gleichzeitig die Möglichkeit beibehalten, das Versionsfeld aus verschiedenen Strukturen zu drucken. Indem Sie die Funktion als Methode eines benutzerdefinierten Typs definieren, stellen Sie sicher, dass dieselbe Implementierung für alle Strukturen verwendet wird, die diesen Typ einbetten.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3