Maison >développement back-end >Golang >Comment puis-je accéder à la méthode d'un type intégré dans Go lorsqu'elle est surchargée dans la structure enfant ?
Surcharge de méthodes dans Go : accès aux méthodes de type intégré
Lorsque vous travaillez avec des structures dans Go, il est possible de définir des méthodes à la fois sur le parent et structures intégrées (imbriquées). Cependant, lorsqu'une méthode est surchargée dans la structure enfant, accéder directement à la méthode de la structure de base peut sembler impossible.
Surcharge de méthodes avec surcharge de méthode
Dans l'exemple fourni, la structure Employee intègre une structure Human. Les deux structures définissent une méthode SayHi(). Cependant, la méthode SayHi() de la structure Employee remplace celle de la structure Human.
Accès aux méthodes de type intégrées
Pour accéder à la méthode de la structure intégrée, malgré la méthode surchargée , vous pouvez utiliser la syntaxe suivante :
parentMember.embeddedMemberName.methodName()
Dans ce cas, pour appeler la méthode SayHi() de la structure Human à partir de la structure Employee, vous utiliseriez :
sam.Human.SayHi()
Exemple de code
L'exemple suivant montre l'accès à la méthode de la structure intégrée :
package main import "fmt" type Human struct { name string age int phone string } func (h *Human) SayHi() { fmt.Printf("Hi, I am %s you can call me on %s\n", h.name, h.phone) } type Employee struct { Human company string } 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() }
Sortie :
Hi, I am Sam, I work at Golang Inc. Call me on 111-888-XXXX Hi, I am Sam you can call me on 111-888-XXXX
Cela démontre que même lorsqu'une méthode est surchargée dans une structure enfant, vous pouvez toujours accéder à la méthode du type incorporé en utilisant la syntaxe décrite ci-dessus.
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!