Maison >développement back-end >Golang >Comment puis-je accéder aux méthodes d'un type intégré dans Go lorsque la surcharge de méthodes est utilisée ?
Surcharge de méthodes et accès aux types intégrés dans Go
Dans Go, la surcharge de méthodes permet la définition de plusieurs méthodes portant le même nom mais différentes paramètres ou types de retour. Lorsqu'une struct Go contient une autre struct comme type embarqué, cela se pose la question de l'accès aux méthodes du type embarqué.
Accéder aux méthodes de type embarqué
Pour accéder au méthodes d'un type incorporé :
Exemple
Considérez le code suivant :
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 }
Dans cet exemple :
Surcharge de méthode et intégration Types
Lorsque la méthode d'un type incorporé est surchargée, la structure enfant a accès à toutes les surcharges. Par exemple :
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" }
Dans cet exemple :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!