乐趣区

关于go:protobuf-使用其他消息类型message的三种方式

更不便的在微信公众号阅读文章能够关注公众号:海生的 go 花园

形式一:
应用其余音讯类型
您能够应用其余音讯类型作为字段类型。例如,假如您想 Result 在每条 SearchResponse 音讯中蕴含音讯——为此,您能够在其中定义一个 Result 音讯类型,.proto 而后在 中指定一个类型 Result 字段 SearchResponse

message SearchResponse {repeated Result results = 1;}

message Result {
  string url = 1;
  string title = 2;
  repeated string snippets = 3;
}

形式二:导入
在下面的例子中,Result 音讯类型在同一个文件中定义 SearchResponse——如果你想用作字段类型的音讯类型曾经在另一个.proto 文件中定义了怎么办?

您能够通过导入其余.proto 文件来应用它们的定义。要导入另一个的定义,您能够在文件顶部增加一个导入语句:.proto
import “myproject/other_protos.proto”;

形式三:嵌套类型

message SearchResponse {
  message Result {
    string url = 1;
    string title = 2;
    repeated string snippets = 3;
  }
  repeated Result results = 1;
}

如果要在其父音讯类型之外重用此音讯类型,请将其称为_Parent_._Type_:

message SomeOtherMessage {SearchResponse.Result result = 1;}
退出移动版