Maison  >  Article  >  développement back-end  >  Comment implémenter l'interface Golang

Comment implémenter l'interface Golang

青灯夜游
青灯夜游original
2022-12-23 10:54:495799parcourir

Dans Golang, vous pouvez utiliser l'instruction "type interface type name interface{method name 1 (parameter list 1) return value list 1 method name 2 (parameter list 2) return value list 2...}" pour déclarer l'interface ; lorsque "méthode Lorsque la première lettre du nom est en majuscule et que la première lettre du nom du type d'interface est également en majuscule, cette méthode est accessible par code en dehors du package où se trouve l'interface.

Comment implémenter l'interface Golang

L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.

Le langage Go n'est pas un langage de programmation orienté objet "traditionnel" : il n'a pas les notions de classes et d'héritage.

Mais le langage Go a un concept d'interface très flexible, à travers lequel de nombreuses fonctionnalités orientées objet peuvent être implémentées. De nombreux langages orientés objet ont des concepts d'interface similaires, mais la particularité du type d'interface dans le langage Go est qu'il satisfait à l'implémentation implicite. Autrement dit, il n’est pas nécessaire de définir tous les types d’interface satisfaisants pour un type concret donné ; il suffit simplement de disposer des méthodes requises ;

Cette conception vous permet de créer un nouveau type d'interface qui satisfait les types concrets existants sans modifier les définitions de ces types ; cette conception est particulièrement utile lorsque les types que nous utilisons proviennent de packages qui ne sont pas sous notre contrôle.

Les types d'interface sont des abstractions et des généralisations du comportement d'autres types ; parce que les types d'interface ne sont pas liés à des détails d'implémentation spécifiques, grâce à cette abstraction, nous pouvons rendre nos fonctions plus flexibles et adaptables.

L'interface est un accord de coopération convenu par les deux parties. L'implémenteur de l'interface n'a pas besoin de se soucier de la façon dont l'interface sera utilisée, et l'appelant n'a pas besoin de se soucier des détails d'implémentation de l'interface. Une interface est un type et une structure abstraite qui n'expose pas le format, le type et la structure des données contenues.

Format de déclaration d'interface

Chaque type d'interface se compose de plusieurs méthodes. Le code formel de l'interface est le suivant :

type 接口类型名 interface{
    方法名1( 参数列表1 ) 返回值列表1
    方法名2( 参数列表2 ) 返回值列表2
    …
}

Explication de chaque partie :

  • Nom du type d'interface : Utilisez type pour définir l'interface comme nom de type personnalisé. Lors de la dénomination des interfaces du langage Go, er est généralement ajouté après le mot. Par exemple, l'interface avec les opérations d'écriture s'appelle Writer, l'interface avec la fonction de chaîne s'appelle Stringer, l'interface avec la fonction de fermeture s'appelle Closer, etc.

  • Nom de la méthode : lorsque la première lettre du nom de la méthode est en majuscule et que la première lettre du nom du type d'interface est également en majuscule, cette méthode est accessible par code en dehors du package où se trouve l'interface.

  • Liste des paramètres, liste des valeurs de retour : Les noms des variables de paramètre dans la liste des paramètres et la liste des valeurs de retour peuvent être ignorés, par exemple :

type writer interface{
    Write([]byte) error
}

Interfaces communes et méthodes d'écriture en développement

Fourni par Langage Go Il existe des interfaces dans de nombreux packages, comme l'interface Writer fournie dans le package io :

type Writer interface {
    Write(p []byte) (n int, err error)
}

Cette interface peut appeler la méthode Write() pour écrire un tableau d'octets ([]byte), et la valeur de retour indique le nombre d'octets écrits (n int ) et des erreurs pouvant survenir (err error).

De même, il existe une interface qui affiche un objet sous forme de chaîne. Tant que le type de cette interface est implémenté, lorsque la méthode String() est appelée, la chaîne correspondant à l'objet peut être obtenue. Elle est définie comme suit dans le package fmt :

type Stringer interface {
    String() string
}

L'interface Stringer est utilisée très fréquemment en langage Go, et sa fonction est similaire à l'opération ToString en langage Java ou C#.

Le nombre de méthodes dans chaque interface du langage Go ne sera pas très important. Le langage Go espère décrire avec précision ses propres fonctions via une interface et étendre des interfaces simples en interfaces complexes grâce à l'intégration et à la combinaison de plusieurs interfaces. Les sections suivantes de ce chapitre décrivent comment étendre les interfaces à l'aide de la composition.

【Recommandations associées : Tutoriel vidéo Go, Enseignement de la programmation

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