允许嵌套

Protocol Buffers 在定义 message时候允许嵌套组合成更加复杂的消息:

  1. message ServiceResponse {
  2. message Result {
  3. string name = 1;
  4. string streamKey = 2;
  5. repeated string publishURL = 3;;
  6. }
  7. repeated Result results = 1;
  8. }

如果你想在它的父消息类型的外部重用这个消息类型,你需要以Parent.Type的形式使用它,如:

  1. message SomeOtherMessage {
  2. ServiceResponse.Result result = 1;
  3. }

当然,你也可以将消息嵌套任意多层,如:

  1. message Outer { // Level 0
  2. message MiddleA { // Level 1
  3. message Inner { // Level 2
  4. int64 ival = 1;
  5. bool booly = 2;
  6. }
  7. }
  8. message MiddleB { // Level 1
  9. message Inner { // Level 2
  10. int32 ival = 1;
  11. bool booly = 2;
  12. }
  13. }
  14. }