Go プログラミングで別のパッケージの proto ファイルをインポートすると、この問題が発生する可能性があります。 protoreflect が見つかりません」というエラーが発生します。以下は、このエラーの理由と解決策を分析します:
proto ファイルを別のパッケージ (「prototemps」など) に移動し、それを使用しようとしたときこのエラーは、proto ファイルをパッケージ (「リーダー」など) にインポートするときに発生する可能性があります。これは、プロト リフレクション パッケージ (protoreflect.ProtoMessage インターフェイスを含む) が「github.com/golang/protobuf/proto」または「google.golang.org/protobuf/proto」パッケージにあり、インポート時に使用できるためです。プロトファイル もう一つのバッグです。
このエラーを解決するには、proto ファイルをインポートするときに正しいパッケージを使用していることを確認する必要があります。 2 つのオプションがあります:
「github.com/golang/protobuf/proto」パッケージを使用します:
これは古いバージョンのプロトコルで機能します。 gen-go ツール (通常は Go 1.11 より前)。パッケージ内で次の import ステートメントを使用します:
<code class="go">import "github.com/golang/protobuf/proto"</code>
「google.golang.org/protobuf/proto」パッケージを使用します:
これは、protoc-gen-go ツールの新しいバージョン (通常は Go 1.12 以降) で動作します。パッケージ内で次の import ステートメントを使用します:
<code class="go">import "google.golang.org/protobuf/proto"</code>
サンプル コード:
uw0uh のサンプル コードを例として挙げると、次のような問題を解決できます。次の import ステートメントを「reader」パッケージに追加することで、「メソッド protoreflect がありません」エラーを解決します:
<code class="go">import "github.com/golang/protobuf/proto"</code>
これにより、正しい proto Reflection パッケージを使用していることが確認され、proto.Unmarshal を正常に使用できるようになります ()関数。
以上がタイトルとして使用できる英語の Q&A の質問をいくつか紹介します。 * Go で別のパッケージから proto ファイルをインポートすると、「メソッド protoreflect がありません」エラーが発生するのはなぜですか? * 欠落しているメソッド protoref を修正するにはどうすればよいですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。