2016-05-25 11 views
0

こんにちはgRPC Rubyプラグインを使用してサービスと通信しています。プロト定義は(proto3)含まれていますruby​​(proto3)のgRPCでNil値を使用できません

uint32 id = 1; 

しかし、私はIDにnilを割り当てるときに、エラーがスローされます - 予想される数を整数フィールドに。しかし、文字列の場合、ゼロ値は正常に動作します。積分/浮動小数点フィールドにnil値を許可するにはどうすればよいですか?

+0

'integral'≠' – mudasobwa

+0

integer' Proto3は、空の値を許可していません。フィールドの存在が必要な場合は、proto2を使用できます。 –

答えて

0

proto3内の文字列のデフォルト値は空です - https://github.com/google/protobuf/issues/359

したがって、それはエラーを返さずにnilの値を受け取ることができ、一方、整数は0に設定されたデフォルト値を使用すると、場合に0を渡してみていますどんな価値も渡したくない。

提案:proto3で書かれたメッセージにタプルを渡したくない場合は、メッセージを空白のままにしておくことができます。これはメッセージを定義するのに有効です。例えば

: - それはそこに意味がありませんnilにそれを設定するよう

syntax="proto3" 
service Foo{ 
      rpc Index(Empty) Returns(Nothing){} 
      } 
message Empty{} 
message Nothing{} 
関連する問題