Vous pouvez rencontrer ce problème lors de l'importation de fichiers proto dans différents packages dans la programmation Go "Méthode le protoréflecteur est manquant". Ce qui suit analyse les raisons et les solutions de cette erreur :
Lorsque vous déplacez le fichier proto vers un package séparé (tel que "prototemps") et essayez de l'utiliser dans autre Cette erreur peut survenir lors de l'importation du fichier proto dans un package (par exemple "lecteur"). En effet, le package de réflexion proto (contenant l'interface protoreflect.ProtoMessage) se trouve dans le package "github.com/golang/protobuf/proto" ou "google.golang.org/protobuf/proto", que vous pouvez utiliser lors de l'importation. le fichier proto C'est un autre sac.
Pour résoudre cette erreur, vous devez vous assurer que vous utilisez le bon package lors de l'importation du fichier proto. Il existe deux options :
Utilisez le package "github.com/golang/protobuf/proto" :
Cela fonctionne pour les anciennes versions de protocole. outil gen-go (généralement avant Go 1.11). Utilisez les instructions d'importation suivantes dans votre package :
<code class="go">import "github.com/golang/protobuf/proto"</code>
Utilisez le package "google.golang.org/protobuf/proto" :
Cela fonctionne avec les versions plus récentes de l'outil protoc-gen-go (généralement dans Go 1.12 et supérieur). Utilisez les instructions d'importation suivantes dans votre package :
<code class="go">import "google.golang.org/protobuf/proto"</code>
Exemple de code :
En prenant l'exemple de code de uw0uh comme exemple, vous pouvez résoudre l'erreur "protoreflect méthode manquante" en ajoutant l'instruction d'importation suivante au package "reader":
<code class="go">import "github.com/golang/protobuf/proto"</code>
Cela garantira que vous utilisez le package de réflexion de proto correct et que vous pouvez utiliser proto.Unmarshal avec succès () fonction.
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!