Die Golang-Strukturmethode akzeptiert mehrere Parametertypen

王林
Freigeben: 2024-02-10 23:30:10
nach vorne
1086 Leute haben es durchsucht

Die Golang-Strukturmethode akzeptiert mehrere Parametertypen

Der PHP-Editor Apple stellt Ihnen heute die Strukturmethoden in Golang vor. Diese Methoden können mehrere Parametertypen akzeptieren. Golang ist eine statisch typisierte Open-Source-Programmiersprache, die den objektorientierten Programmierstil unterstützt und Strukturen als Datentyp bereitstellt. Strukturmethoden sind spezielle Funktionen, die Strukturen bedienen und ändern können. Im Gegensatz zu anderen Sprachen kann die Strukturmethode von Golang mehrere Parametertypen akzeptieren, was Entwicklern mehr Flexibilität und Komfort bietet. Schauen wir uns diese Funktion genauer an.

Frageninhalt

Meine Methode ist wie folgt:

func (t *worker) updateinfo(n structtype1, node structtype2)
Nach dem Login kopieren

Allerdings muss ich jetzt diese API verwenden, um structtype1 und structtype3 zu verarbeiten. Dies bedeutet, dass n structtype3 sein kann.

Wie kann ich die Methode ändern, um dies zu erreichen, anstatt eine andere Methode wie unten zu schreiben und denselben Code zu wiederholen?

func (t *Worker) updateInfo(n structType3, node structType2)
Nach dem Login kopieren

Bearbeiten: Diese Strukturen sind alle meine eigenen benutzerdefinierten Strukturen

Problemumgehung

In diesem Fall können Sie Generika verwenden.

Nehmen Sie zum Beispiel die Methode von structtype1structtype2 有一个名为 print an.

type  structtype1 struct {}
func(st1 structtype1) print() {
 fmt.println("calling print function of structtype1")
}

type  structtype3 struct {}
func(st3 structtype3) print() {
 fmt.println("calling print function of structtype2")
}
Nach dem Login kopieren

Wir können eine Schnittstellentypdeklaration wie unten gezeigt definieren.

type struct13 interface {
 print()
 structtype1 | structtype3 // type union 
}

Nach dem Login kopieren

Zu Demonstrationszwecken müssen Sie dann die Funktion worker 结构体和 updateinfo 函数。 (注:struct13 中的 print mit Typparametern modifizieren. )

type worker[t struct13] struct{}

func (t *worker[t]) updateinfo(n t, node structtype2) {
 n.print()
}
Nach dem Login kopieren

Wir können die obige Implementierung wie unten gezeigt verwenden.

    st1 := structType1{}
    st2 := structType2{}
    st3 := structType3{}


    w1 := Worker[structType1]{}
    w1.updateInfo(st1,st2)

    w2 := Worker[structType3]{}
    w2.updateInfo(st3,st2)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDie Golang-Strukturmethode akzeptiert mehrere Parametertypen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
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
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!