Heim >Backend-Entwicklung >Golang >Wie kann ich in Go auf Methoden eines eingebetteten Typs zugreifen, wenn Methodenüberladung verwendet wird?
Methodenüberladung und Zugriff auf eingebettete Typen in Go
In Go ermöglicht Methodenüberladung die Definition mehrerer Methoden mit demselben Namen, aber unterschiedlichen Namen Parameter oder Rückgabetypen. Wenn eine Go-Struktur eine andere Struktur als eingebetteten Typ enthält, stellt sich die Frage nach dem Zugriff auf die Methoden des eingebetteten Typs.
Auf eingebettete Typmethoden zugreifen
Um auf die zuzugreifen Methoden eines eingebetteten Typs:
Beispiel
Betrachten Sie den folgenden Code:
package main import "fmt" type Human struct { name string age int phone string } type Employee struct { Human company string } func (h *Human) SayHi() { fmt.Printf("Hi, I am %s you can call me on %s\n", h.name, h.phone) } func (e *Employee) SayHi() { fmt.Printf("Hi, I am %s, I work at %s. Call me on %s\n", e.name, e.company, e.phone) } func main() { sam := Employee{Human{"Sam", 45, "111-888-XXXX"}, "Golang Inc"} sam.SayHi() // calls Employee.SayHi sam.Human.SayHi() // calls Human.SayHi }
In diesem Beispiel:
Methodenüberladung und Einbettung Typen
Wenn die Methode eines eingebetteten Typs überladen ist, hat die untergeordnete Struktur Zugriff auf alle Überladungen. Zum Beispiel:
package main import "fmt" type A struct { SayHi func(string) } type B struct { A } func main() { a := B{} a.SayHi = func(s string) { fmt.Println("Hello", s) } a.SayHi("World") // prints "Hello World" }
In diesem Beispiel:
Das obige ist der detaillierte Inhalt vonWie kann ich in Go auf Methoden eines eingebetteten Typs zugreifen, wenn Methodenüberladung verwendet wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!