Maison >développement back-end >Golang >Existe-t-il un moyen de savoir via go cmdline ou un IDE (IntelliJ) quelles interfaces ma structure implémente ?

Existe-t-il un moyen de savoir via go cmdline ou un IDE (IntelliJ) quelles interfaces ma structure implémente ?

PHPz
PHPzavant
2024-02-09 09:30:38495parcourir

有没有办法通过 go cmdline 或 IDE (IntelliJ) 找出我的结构实现了哪些接口?

l'éditeur php Xiaoxin répond à votre question. Si vous souhaitez savoir quelles interfaces votre structure implémente, il existe plusieurs façons de le faire. Tout d’abord, vous pouvez utiliser l’outil de ligne de commande go cmdline pour le trouver. Tapez "go doc -all" dans la ligne de commande et appuyez sur Entrée. Cela affichera toutes les interfaces implémentées dans votre structure. De plus, si vous utilisez IntelliJ IDE, vous pouvez utiliser la fonctionnalité de navigation dans le code qu'elle fournit pour découvrir les interfaces implémentées par votre structure. Trouvez simplement la définition de votre structure dans le code, puis Ctrl-cliquez sur le nom de la structure et elle vous montrera toutes les implémentations de l'interface. J'espère que ces méthodes vous seront utiles !

Contenu des questions

Dites que je l'ai

// main.go
type Speaker interface {
  Speak()
}

type Person struct {}

func (p *Person) Speak() {
   panic("test")
}

Existe-t-il un moyen de savoir quelles interfaces Person implémente, étant donné la personne ailleurs dans le code ? Évidemment, Person implémente Speaker, mais que se passe-t-il s'il s'agit d'autres types

type Ghost interface {
  Speak()
}

Existe dans un autre package ?

Pour le contexte, je regarde la base de code et il est difficile de décider si la méthode du récepteur peut être supprimée car il est difficile de dire si la méthode existe pour satisfaire les exigences de l'interface ou simplement pour améliorer les fonctionnalités. Dans la base de code autonome, je peux le supprimer et voir si j'obtiens des erreurs de compilation, mais je ne peux pas faire de même dans la bibliothèque publique.

Solution de contournement

À partir de la documentation de Goland, vous pouvez accéder à une seule implémentation en utilisant l'icône de gouttière qui implémente ou remplace votre interface, ou vous pouvez utiliser Cmd + U pour rechercher toutes les implémentations (en supposant que vous travaillez sur un Mac). Voici le lien vers la documentation :

https://www.jetbrains .com/help/go/navigating-through-the-source-code.html#go_to_implementation

Puisque Goland est l'IDE Go basé sur IntelliJ, vous devriez pouvoir faire la même chose. Vous devrez peut-être configurer l'icône de gouttière, mais les mêmes commandes devraient fonctionner dans IntelliJ.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer