gpt4 book ai didi

java - Google Protocol 重复值的结构是怎样的?它们的局限性和优势是什么?

转载 作者:行者123 更新时间:2023-11-30 05:07:00 25 4
gpt4 key购买 nike

我正在尝试创建一个数组,用于将数据从 C++ 应用程序传输到 Java 应用程序。由于这两种语言,您如何格式化 Google 协议(protocol)消息?

还有,它们的局限性和优势是什么?

到目前为止,我有以下内容:

message Config {
repeated string types = 1;
}

我想我错过了什么!

最佳答案

如果您的意思是在线 - 那么首先:序列化程序的工作就是担心这个问题,但是在这种情况下它的实现方式很简单(每个重复元素):

0x0a = "field 1, length prefixed" (strings are always length prefixed)
{number of bytes as UTF8, varint-encoded}
{that many bytes of UTF8}

因此,如果您有 3 个重复项,您将有 3 批 0x0a、varint、有效负载一个接一个地猛击。对于一些基本类型——整数等,有一种“打包”编码,通过在第一个前面加上整个数组的字节长度,然后只是数组内容作为原始非标记化数据。


如果您的意思是从调用者的角度,那么:这取决于实现,但本质上您应该期望一些熟悉的 API - 该框架通用的。这可能意味着 repeated 数据以数组/vector 的形式公开,或者它可能意味着带有 Add 等 API 的“集合”类。这将完全取决于目标框架的合理性和实现作者的奇思妙想。

关于java - Google Protocol 重复值的结构是怎样的?它们的局限性和优势是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47681146/

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