2016-05-25 8 views
0

Hi Ich benutze gRPC Ruby Plugin um mit einem Dienst zu kommunizieren. Die Proto-Definition enthält (proto3):Keine Werte für gRPC in Ruby erlaubt (proto3)

uint32 id = 1; 

Aber, wenn ich Null zu id zuweisen, wirft er einen Fehler - erwartete Anzahl für integrales Feld. Aber für Strings funktionieren keine Werte. Wie erlaube ich Nullwerte für Integral-/Float-Felder?

+0

'integral' ≠' integer' – mudasobwa

+0

Proto3 erlaubt keine leeren Werte, so dass er es macht keinen Sinn, es zu null gesetzt. Sie können Proto2 verwenden, wenn Sie Feldpräsenz benötigen. –

Antwort

0

Die Standardwerte für Zeichenketten in proto3 leer - https://github.com/google/protobuf/issues/359

Daher kann es den Nullwert empfangen, ohne dass ein Fehler zurückgegeben, ganzen Zahlen auf der anderen Seite haben Standardwerte auf 0 Try 0, falls Sie vorbei Ich möchte keinen Wert weitergeben.

Vorschlag: - Wenn Sie keine Tupel für eine in Proto3 geschriebene Nachricht übergeben möchten, können Sie die Nachricht leer lassen, was eine sehr gültige Möglichkeit ist, eine Nachricht zu definieren.

Zum Beispiel: -

syntax="proto3" 
service Foo{ 
      rpc Index(Empty) Returns(Nothing){} 
      } 
message Empty{} 
message Nothing{} 
Verwandte Themen