gRPC 选项值中需要分号、可选分号还是不允许分号?
Semi-colon required, optional, or disallowed in gRPC option value?
我看到一段代码如下:
rpc SayFallback (FooRequest) returns (FooResponse) {
option (com.example.proto.options.bar) = {
value : "{ message:\"baz\" }";
};
}
还有一个像下面这样的:
rpc SayFallback (FooRequest) returns (FooResponse) {
option (com.example.proto.options.bar) = {
value : "{ message:\"baz\" }"
};
}
第一个在 value
行上有一个 ;
,而第二个没有。按照标准都可以吗?
是的,它们被认为是可选的。请参阅 protobuf file source 片段:
while (!TryConsumeEndOfDeclaration("}", NULL)) {
if (AtEnd()) {
AddError("Reached end of input in method options (missing '}').");
return false;
}
if (TryConsumeEndOfDeclaration(";", NULL)) {
// empty statement; ignore
} else {
...
}
我看到一段代码如下:
rpc SayFallback (FooRequest) returns (FooResponse) {
option (com.example.proto.options.bar) = {
value : "{ message:\"baz\" }";
};
}
还有一个像下面这样的:
rpc SayFallback (FooRequest) returns (FooResponse) {
option (com.example.proto.options.bar) = {
value : "{ message:\"baz\" }"
};
}
第一个在 value
行上有一个 ;
,而第二个没有。按照标准都可以吗?
是的,它们被认为是可选的。请参阅 protobuf file source 片段:
while (!TryConsumeEndOfDeclaration("}", NULL)) {
if (AtEnd()) {
AddError("Reached end of input in method options (missing '}').");
return false;
}
if (TryConsumeEndOfDeclaration(";", NULL)) {
// empty statement; ignore
} else {
...
}