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

DDD
Freigeben: 2024-10-27 07:50:31
Original
872 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!