关于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;
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理