Dans le domaine de la programmation Go, on peut rencontrer une syntaxe de déclaration de type particulière comme :
// PublicKey is the type of Ed25519 public keys. type PublicKey []byte
Cette déclaration soulève des questions : crée-t-elle une nouvelle structure héritant de []byte ? Est-ce simplement un pseudonyme ? Et l'héritage n'est-il pas interdit dans Go ?
La réponse réside dans le concept de déclaration de type, en particulier la définition de type. Il crée un nouveau type, nommé PublicKey, avec []byte comme type sous-jacent. Ce type a désormais une identité distincte de son type sous-jacent.
Définitions de type :
Les définitions de type servent à plusieurs fins :
Méthodes et Interfaces :
Seuls les types avec des méthodes peuvent implémenter des interfaces. Les interfaces définissent un ensemble de méthodes qu'un type doit implémenter. En créant de nouveaux types, il devient possible de définir des méthodes qui s'alignent sur les exigences d'interfaces spécifiques.
Par exemple, []int ne peut pas implémenter sort.Interface (requis pour le tri), donc un nouveau type sort.IntSlice est créé pour attacher les méthodes requises. Cela vous permet de trier les valeurs de type sort.IntSlice mais pas []int.
Embeddings and Inheritance :
Contrairement à l'héritage, l'incorporation permet à un type d'inclure le champs et méthodes d’un autre type. Cependant, le type incorporé n'hérite pas des méthodes du type incorporé.
En conclusion, les déclarations de type dans Go permettent la création de nouveaux types pratiques et extensibles. Ils vous permettent d'attacher des méthodes et d'implémenter des interfaces, étendant ainsi les capacités des types existants sans recourir à l'héritage.
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!