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
DDDoriginal
2024-12-11 08:55:12986parcourir

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

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
}

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
}

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!

Déclaration:
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