可以在枚举中使用消息吗?

Possible to use messages in enum?

我想知道是否可以对消息进行枚举。

我想要完成的是根据选择的枚举来嵌套消息。通过使用可选标识符进行业务逻辑检查很容易解决这个问题。

我只是在寻找比 if 语句更优雅的业务逻辑控制实现,从消息中找出要执行的代码路径。

我的想法是这样的。这有可能实现吗?

message T {
    enum A {
        message T2 = 1;
    }
}

否 - 枚举只是命名为 32 位整数;但是有 oneof - 我想知道 that 是否是你要找的:

message T {
    oneof A {
        T2 t2 = 1;
        //...other options here
    }
}
message T2 {}