ホームページ > バックエンド開発 > Golang > Protobuf メッセージは protoreflect.ProtoMessage を実装しません (ProtoReflect メソッドにはポインター レシーバーがあります)

Protobuf メッセージは protoreflect.ProtoMessage を実装しません (ProtoReflect メソッドにはポインター レシーバーがあります)

WBOY
リリース: 2024-02-09 18:27:20
転載
571 人が閲覧しました

Protobuf メッセージは protoreflect.ProtoMessage を実装しません (ProtoReflect メソッドにはポインター レシーバーがあります)

php エディタ Xinyi はここで問題を紹介します。Protobuf メッセージで、protoreflect.ProtoMessage インターフェイスの ProtoReflect メソッドが実装されていないことがわかり、このメソッドはポインタ受信デバイスを使用しています。 。この質問は混乱や不便を引き起こす可能性があります。この記事では、この問題をより深く理解し、対処できるように、この問題の原因と考えられる解決策を詳しく説明します。一緒に調べてみましょう!

質問の内容

protobuf メッセージがインポートされました "google/protobuf/any.proto":

リーリー

anypb を使用して、data フィールド内の別の protobuf をシリアル化しようとしています:

リーリー

コンパイル後に次のエラーが発生します:

リーリー

ドキュメントによると、ここでは何も珍しいことはしていません。この問題はどうすれば解決できますか?

これは、シリアル化して data フィールド内に保存しようとしている protobuf です。 lootcrate.proto:

message mintrecord {
    ...
    google.protobuf.any data = 11;
    ...
}
ログイン後にコピー

解決策

サラス・サダシヴァン・ピライが正しいです。
コードを次のように変更します:

リーリー

以上がProtobuf メッセージは protoreflect.ProtoMessage を実装しません (ProtoReflect メソッドにはポインター レシーバーがあります)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート