Maison >développement back-end >Golang >Comment utiliser les visages en langage Go ?

Comment utiliser les visages en langage Go ?

王林
王林original
2024-04-03 14:12:02362parcourir

Utiliser des interfaces dans Go implique : définir une interface, y compris les signatures de méthodes. Implémenter des interfaces et fournir des implémentations de méthodes. Convertissez le type en type d'interface et appelez ses méthodes. Les interfaces favorisent la réutilisation du code, la facilité de test et l'extensibilité.

Comment utiliser les visages en langage Go ?

Comment utiliser les interfaces dans Go ?

L'interface est un moyen de définir des contrats en langage Go, qui fournit un ensemble de signatures de méthodes. Tout type qui implémente cette interface doit fournir des implémentations de ces méthodes.

Syntaxe

La syntaxe de l'interface est la suivante :

type 接口名 interface {
    方法1() 返回类型
    方法2(参数) 返回类型
    ...
}

Cas pratique : Interface du comparateur

Supposons que nous ayons une Comparable 接口,定义了一个 Compare méthode pour comparer deux types. Nous pouvons implémenter cette interface pour fournir une fonctionnalité de comparaison pour nos propres types.

type Comparable interface {
    Compare(other Comparable) int
}

type Person struct {
    Name  string
    Age   int
    Hobby string
}

func (p Person) Compare(other Comparable) int {
    switch other.(type) {
    case Person:
        o := other.(Person)
        if p.Age > o.Age {
            return 1
        } else if p.Age < o.Age {
            return -1
        }
        return 0
    default:
        return -1
    }
}

Utiliser des méthodes

Après avoir implémenté une interface, nous pouvons convertir son instance en type d'interface et appeler ses méthodes.

var comparable Comparable = Person{"John", 30, "Coding"}
result := comparable.Compare(Person{"Jane", 25, "Reading"})
fmt.Println(result) // 预期输出:1

Avantages

  • Réutilisation du code : Les interfaces nous permettent de créer du code générique qui peut être utilisé avec n'importe quel type qui implémente un contrat spécifique.
  • Facile à tester : Nous pouvons tester le code au niveau de l'interface sans nous soucier de l'implémentation sous-jacente.
  • Extensibilité : Nous pouvons facilement ajouter de nouvelles méthodes à l'interface selon les besoins et bénéficier à tous les types implémentés.

Notes

  • Assurez-vous de fournir toutes les méthodes requises lors de la mise en œuvre de l'interface.
  • Les interfaces appliquent la vérification de type, mais n'imposent pas la mise en œuvre des méthodes.

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