Méthodes d'appel de types nommés
Dans Go, les types nommés créés à l'aide du mot-clé type sont des types distincts de leurs types sous-jacents. Par conséquent, les méthodes appartenant au type sous-jacent ne peuvent pas être invoquées directement sur le type nommé.
Pour résoudre ce problème et étendre un type nommé avec des méthodes supplémentaires tout en préservant sa fonctionnalité d'origine, la technique de l'intégration peut être utilisée . En incorporant le type sous-jacent de manière anonyme dans le type nommé, les méthodes et les champs du type intégré deviennent promus et accessibles dans le type nommé.
Par exemple, si vous avez un type nommé StartTime qui enveloppe une heure.Time value :
type StartTime time.Time func (st *StartTime) UnmarshalJSON(b []byte) error {...}
Pour accéder aux méthodes de time.Time sur le type StartTime, intégrez time.Time de manière anonyme dans StartTime :
type StartTime struct { time.Time }
Maintenant, vous pouvez appeler des méthodes telles que Date() sur StartTime comme si elles étaient directement définies sur le type :
myStartTime.Date()
Cette approche permet une extension transparente de types nommés avec des méthodes supplémentaires tout en conservant la fonctionnalité d'origine du type sous-jacent.
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!