Heim > Backend-Entwicklung > Golang > Wie kann ich generische Methodenparameter und Schnittstellen verwenden, um sowohl Slices von Mammal- als auch Human-Objekten in Golang zu verarbeiten?

Wie kann ich generische Methodenparameter und Schnittstellen verwenden, um sowohl Slices von Mammal- als auch Human-Objekten in Golang zu verarbeiten?

Barbara Streisand
Freigeben: 2024-10-28 17:36:02
Original
688 Leute haben es durchsucht

How can I use generic method parameters and interfaces to process both slices of Mammal and Human objects in Golang?

Generische Methodenparameter in Golang

Um in Golang zu ermöglichen, dass eine Funktion jeden Typ akzeptiert, können generische Methodenparameter verwendet werden. Wenn eine Methode einen Typ mit einer bestimmten Eigenschaft erfordert, können Schnittstellen verwendet werden. Unten sehen Sie ein Beispiel, bei dem eine Funktion Typen akzeptieren muss, die eine ID-Eigenschaft besitzen.

<code class="go">type MammalImpl struct {
    ID   int
    Name string
}

func (m MammalImpl) GetID() int {
    return m.ID
}

func (m MammalImpl) GetName() string {
    return m.Name
}

type HumanImpl struct {
    MammalImpl
    HairColor string
}

func (h HumanImpl) GetHairColor() string {
    return h.HairColor
}</code>
Nach dem Login kopieren

In diesem Code wurden Schnittstellen zusammen mit ihren eingebetteten Implementierungen für Mammal und Mensch. Dadurch wird sichergestellt, dass beide Typen in der Funktion Count verwendet werden können, die nun indirekt über die Methode GetID auf die Eigenschaft ID zugreift.

<code class="go">func Count(ms []Mammal) *[]string {
   IDs := make([]string, len(ms))
   for i, m := range ms {
     IDs[i] = strconv.Itoa(m.GetID())
   }
   return &IDs
}</code>
Nach dem Login kopieren
Durch die Nutzung generischer Methodenparameter und Schnittstellen kann diese Funktion nun sowohl Slices von

Säugetier als auch von Menschen-Objekten verarbeiten.

Hier ist der vollständige Arbeitscode:

Das obige ist der detaillierte Inhalt vonWie kann ich generische Methodenparameter und Schnittstellen verwenden, um sowohl Slices von Mammal- als auch Human-Objekten in Golang zu verarbeiten?. 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