Protocol buffers 映射向后是否与重复的keyvaluepair兼容?

Protocol buffers 映射向后是否与重复的keyvaluepair兼容?,protocol-buffers,protobuf-java,Protocol Buffers,Protobuf Java,我能用吗 messagefoo{ map foo=1; } 代替 messagefoo{ 重复的KeyValuePair foo=1; } 消息键值对{ 字符串键=1; 字符串值=2; } ? 第一个源在proto3中,第二个源在proto2中。只要没有重复的密钥,它们就会非常相似。如果您有重复的密钥,那么使用映射将有不同的行为,因为repliceWS将导致覆盖或异常(对不起,我记不起是哪种情况)。此外,“repeated”通常被实现为list/array/etc,因此:order被保留。“

我能用吗

messagefoo{
map foo=1;
}
代替

messagefoo{
重复的KeyValuePair foo=1;
}
消息键值对{
字符串键=1;
字符串值=2;
}
?


第一个源在proto3中,第二个源在proto2中。

只要没有重复的密钥,它们就会非常相似。如果您有重复的密钥,那么使用映射将有不同的行为,因为repliceWS将导致覆盖或异常(对不起,我记不起是哪种情况)。此外,“repeated”通常被实现为list/array/etc,因此:order被保留。“map”通常使用某种map/字典结构来实现,其中顺序通常是而不是


所以:如果顺序不重要,而且你总是有唯一的密钥:你很好。

因此,如果我是一个使用proto3版本的客户机,与使用proto2版本的服务器交谈,并且我发送了一张地图,我会很好?@Soren他们是有线兼容的,所以只要我提到的两个注意事项没有问题,那么是的。顺便说一句,我想“地图”已经被下推到proto2了。但行为才是最重要的,那就是:如上所述