如果 protobuf 消息中的属性是第一个或第二个成员,有什么区别?
我的请求原始消息有 2 个字段。我被要求交换属性的位置
message SomeRequest {
SomeMessage1 message1 = 1;
SomeMessage2 message2 = 2;
}
更改为:
message SomeRequest {
SomeMessage2 message2 = 1;
SomeMessage1 message1 = 2;
}
提出这样的建议的可能原因是什么? message2 预计会被更多地搜索? 另外我可以再提供一些场景来更好地理解它吗?
提前致谢!!
最佳答案
最终,无论是谁要求进行此更改 - 也许可以询问他们的原因?
在场景中,较低的字段编号更便宜(空间方面),因此应该是首选,但字段 1 和 2 在空间方面是相同的,因此这不是问题在这里。
如果这是为了与预先存在的类似类型进行字节兼容,那么这可能是一个合理的请求。
关于protocol-buffers - 原始消息的差异及其属性的相对位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63444882/