gpt4 book ai didi

protocol-buffers - .proto文件的字段可以从零开始吗?

转载 作者:行者123 更新时间:2023-12-04 07:27:02 25 4
gpt4 key购买 nike

.proto示例似乎都开始将其字段编号为1。

例如https://developers.google.com/protocol-buffers/docs/proto#simple

message SearchRequest {
required string query = 1;
optional int32 page_number = 2;
optional int32 result_per_page = 3;
}

如果可以使用零,它将使某些消息小一个或多个字节(即,一个或多个字段编号为16的消息)。

由于键只是(fieldnum << 3 | fieldtype)的varint编码,因此我无法立即了解为什么不应该使用零。

是否有理由不将字段编号从零开始?

最佳答案

一个非常直接的原因是protoc拒绝了零字段编号:

test.proto:2:28: Field numbers must be positive integers.

至于为什么如此设计 Protocol Buffer ,我只能猜测。这样做的一个很好的结果是,将检测到一个全零的消息是无效的。它也可以用来在内部表示“无字段”,作为 Protocol Buffer 实现中的返回值。

关于protocol-buffers - .proto文件的字段可以从零开始吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26866911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com