Maison > développement back-end > Golang > Types nommés et intégration : comment ajouter des méthodes à un type Go existant ?

Types nommés et intégration : comment ajouter des méthodes à un type Go existant ?

DDD
Libérer: 2024-12-11 08:55:12
original
961 Les gens l'ont consulté

Named Types vs. Embedding: How Do I Add Methods to an Existing Go Type?

Ajout de méthodes à un type existant : types nommés et intégration

Lorsque vous traitez des types nommés, il est important de comprendre la distinction entre la création d'un nouveau type et l'intégration d'un type existant. Explorons comment ajouter des méthodes à un type existant tout en préservant ses méthodes d'origine.

Cas 1 : Types nommés

Si vous utilisez le mot-clé type pour définir un nouveau type , il sera distinct du type sous-jacent. Par exemple, dans l'extrait de code fourni :

type StartTime time.Time
Copier après la connexion

StartTime est un nouveau type, et il n'aura pas les méthodes time.Time, telles que Date(). En effet, les types nommés n'héritent pas des méthodes de leurs types sous-jacents.

Cas 2 : Incorporation

Pour ajouter des méthodes à un type existant sans perdre ses méthodes d'origine, utilisez intégration. Cela implique de créer une nouvelle structure qui intègre le type existant. Par exemple, nous pourrions réécrire le code ci-dessus en utilisant l'intégration :

type StartTime struct {
    time.Time
}
Copier après la connexion

Dans ce cas, StartTime intègre time.Time, ce qui signifie qu'il inclut toutes ses méthodes et tous ses champs.

Comment L'intégration fonctionne

Lorsqu'une structure intègre une autre structure de manière anonyme (sans spécifier de nom de champ), les champs et les méthodes de la structure intégrée est promue en structure d'intégration. Cela signifie qu'ils peuvent être utilisés directement sur l'instance de la structure d'intégration.

Exemple d'utilisation

Avec l'intégration, vous pouvez accéder aux méthodes de StartTime et de time.Time :

func main() {
    s := StartTime{time.Now()}
    fmt.Println(s.Date()) // Will output the current date
}
Copier après la connexion

Conclusion

Si vous en avez besoin modifiez le comportement ou ajoutez des méthodes à un type existant, pensez à utiliser l'intégration. Il permet de conserver les méthodes d'origine tout en étendant les fonctionnalités du type.

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