ホームページ > バックエンド開発 > Golang > Goのプロトコルバッファ定義で再定義されたフィールドを修正するにはどうすればよいですか?

Goのプロトコルバッファ定義で再定義されたフィールドを修正するにはどうすればよいですか?

王林
リリース: 2024-02-06 11:39:04
転載
671 人が閲覧しました

如何修复 Go 中协议缓冲区定义中重新定义的字段?

質問内容

プロバイダーの .proto ファイルを使用して gRPC クライアントを構築していますが、同じ名前の値を含む列挙がいくつかあります。 。

リーリー

そのため、.proto ファイルの Go サービスを生成して実行しようとすると、次のエラーが発生します:

リーリー

メッセージ内で列挙型を移動しようとしました。たとえば、図形内で色を移動したところ、これにより別の名前空間が提供されることが期待されました。しかし、それは無駄です。生成されたコードは定数ブロックを宣言しており、メッセージでは希望する名前の間隔が提供されません。これは C# で機能します。

リーリー

この問題を解決する方法について何かアイデアはありますか?


正解


提供されたコードの主な問題は、生成された Go コードに NONE という名前の 2 つの名前が含まれていることであるため、列挙値の名前を変更する必要があります。 定数。1 つは Color 列挙型からのもの、もう 1 つは Style 列挙型からのものです。 Go では、生成された protobuf コード内のすべての定数がパッケージ レベルで存在し、パッケージのグローバル変数になるため、これにより名前の競合が発生します。 それで、おそらくこれを試してみてください:

リーリー

以上がGoのプロトコルバッファ定義で再定義されたフィールドを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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