我可以在 proto3 中定义一个有序的混合消息数组吗?

Can I define an ordered mixed message array in proto3?

我想在 proto3 中定义一个不相关 classes(消息)的有序列表,如下所示:

  1. 青蛙
  2. 污垢
  3. 空气
  4. 计算机 1
  5. 计算机 2
  6. 政治

可能吗?如果 proto3 中存在一个基础 class(基础消息),我也可以接受它......如果 proto3 的功能集允许这个,我还不清楚。谢谢!

典型的表示方式是

message Wrapper {
    oneof Thing {
        Frog frog = 1;
        //...
        Politics politics = 6;
    }
}

并使用 repeated Wrapper 作为 list/array。没有一步repeated oneof.

或者,您可以只使用

repeated Frog frogs = 1;
//...
repeated Politics politics = 6;

然而,第二种布局无法保留不同种类元素之间的顺序。