Maison > développement back-end > Golang > Comment accéder aux méthodes Struct intégrées en cas de surcharge de méthodes dans Go ?

Comment accéder aux méthodes Struct intégrées en cas de surcharge de méthodes dans Go ?

DDD
Libérer: 2024-11-12 14:23:01
original
537 Les gens l'ont consulté

How to Access Embedded Struct Methods When Method Overloading in Go?

L'art de la surcharge de méthodes avec des intégrations dans Go

Dans le royaume de Golang, la surcharge de méthodes nous permet de définir plusieurs méthodes avec le même nom mais des signatures différentes. Ce concept devient intrigant lorsque l’on se penche sur la composition structurée à l’aide d’intégrations. Explorons une question qui se pose dans ce contexte.

Requête : accès aux méthodes Struct intégrées lorsque la méthode est surchargée

Considérez l'extrait de code suivant :

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)
}
Copier après la connexion

Pouvons-nous invoquer le Les méthodes de la structure "base" (humaine) utilisant une syntaxe telle que sam.Human.SayHi()?

Solution : adoption de l'invocation de méthodes imbriquées

Les intégrations dans Golang offrent un moyen transparent d'accéder aux membres de la structure intégrée dans la structure parent. Pour invoquer la méthode SayHi de la structure humaine sur une instance Employee, nous utilisons simplement :

sam := Employee{Human{"Sam", 45, "111-888-XXXX"}, "Golang Inc"}
sam.SayHi() // calls Employee.SayHi
sam.Human.SayHi() // calls Human.SayHi
Copier après la connexion

La 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
Copier après la connexion

Go permet les invocations de méthodes imbriquées sur les structures intégrées, permettant l'accès au méthodes héritées même après une surcharge de méthode.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal