Préserver les méthodes tout en étendant les types personnalisés
Lorsque vous travaillez avec des types nommés pour le démarshalling JSON, vous pouvez rencontrer le problème d'accès aux méthodes appartenant au type sous-jacent. Par exemple, définir un type nommé StartTime, dérivé de time.Time, et tenter d'accéder à sa méthode Date().
Pour surmonter cette limitation et ajouter des méthodes à un type existant tout en conservant ses méthodes d'origine, intégrer le type existant. Les intégrations offrent un moyen pratique de promouvoir des champs et des méthodes d'un type anonyme intégré vers le nouveau type.
Par exemple :
type StartTime struct { time.Time }
Dans cet extrait, nous intégrons le type time.Time de manière anonyme dans StartTime. Selon la spécification Go pour les types struct, tous les champs et méthodes du champ anonyme sont promus et sont accessibles directement à partir du type englobant.
Maintenant, vous pouvez appeler de manière transparente Date() et toute autre méthode de time .Time en utilisant des instances de StartTime. Cette approche vous permet de créer des types nommés avec des fonctionnalités étendues tout en préservant les capacités d'origine du type de base.
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!