内嵌类型
可以在消息类型内部定义和使用消息类型, 如下面的例子所示 - 这里Result消息被定义在SearchResponse消息内部:
message SearchResponse {
message Result {
required string url = 1;
optional string title = 2;
repeated string snippets = 3;
}
repeated Result result = 1;
}
如果想在父消息类型之外重用这个消息类型, 可以通过使用 Parent.Type 格式引用:
message SomeOtherMessage {
optional SearchResponse.Result result = 1;
}
还支持多级内嵌类型:
message Outer { // Level 0
message MiddleAA { // Level 1
message Inner { // Level 2
required int64 ival = 1;
optional bool booly = 2;
}
}
message MiddleBB { // Level 1
message Inner { // Level 2
required int32 ival = 1;
optional bool booly = 2;
}
}
}