gRPC/Protobuf 3 syntax: what is the difference bet

2019-02-21 15:23发布

问题:

I've seen two different ways of declaring an gRPC service using Protobuf v3. Some code has the rpc line end with a semicolon (such as the current proto3 documentation):

service SearchService {
  rpc Search (SearchRequest) returns (SearchResponse);
}

Other code has the rpc line end with {}:

service Greeter {
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}

Both of these compile with the protoc v3.0.0-alpha-2 compiler and produce the same (go) code.

What is the difference between the two syntaxes?

回答1:

Nothing, really; they are equivalent.

The {} syntax is used when there are options. If you don't specify any options, either syntax works (just like in C!).