Sar*_*ram 8 protocol-buffers proto grpc
我有一个这样的 protobuf 消息:
message MyMessage{
string foo = 1;
int toBeRemovedBar = 2 [deprecated = true];
string zag = 3;
}
Run Code Online (Sandbox Code Playgroud)
toBeRemovedBar属性不再需要,需要删除。根据此处和此处的指南,我可以保留字段名称或数字。这里的最佳实践是什么?
保留字段编号只会防止字段编号的重复使用。无法阻止字段名称的重复使用。类似的论点适用于仅保留字段名称。
那么,删除属性的正确方法是保留字段名称和编号,如下所示?
message MyMessage{
string foo = 1;
reserved 2;
reserved "toBeRemovedBar";
string zag = 3;
}
Run Code Online (Sandbox Code Playgroud)
Dou*_*ley 10
您应该保留字段编号。这将防止使用相同标记添加新字段,这将导致运行已编译旧字段的旧版本的任何用户的线路不兼容。从线路兼容性的角度来看,重用该名称很好,尽管这样做可能会引起一些混乱。
| 归档时间: |
|
| 查看次数: |
7234 次 |
| 最近记录: |