作为练习我正在尝试编写GPB解码器。根据{{3}}文档字符串和嵌入式消息(以及其他类型)具有相同的类型,那么如何区分字符串和嵌入消息?根据我的理解,字符串必须使用与嵌入消息不同的方法进行解码。
答案 0 :(得分:0)
此信息在.proto
文件中传达。要正确解码protobuf消息,解码器必须事先知道消息的类型,并且还可以使用相应的.proto
文件。
首先使用.proto
编译文件,然后读取输出文件,这本身就是文件descriptor.proto中定义的protobuf消息,可以最轻松地访问protoc
文件。在此文件中,标识符TYPE_MESSAGE
和TYPE_STRING
表示编码中使用相同wire_type
的类型之间的差异。