protobuf支持的数据类型不是很丰富
protobuf属于轻量级的,因此不能支持太多的数据类型,下面是protobuf支持的基本类型列表,一般都能满足需求,不过在选择方案之前,还是先看看是否都能支持,以免前功尽弃。同样该表也值得收藏,作为我们在定义类型时做参考。
|
.proto type |
c++ |
notes |
|
double |
double |
|
|
float |
float |
|
|
int32 |
int32 |
使用可变长编码方式,负数时不够高效,应该使用sint32 |
|
int64 |
int64 |
同上 |
|
uint32 |
uint32 |
使用可变长编码方式 |
|
uint64 |
uint64 |
同上 |
|
sint32 |
int32 |
使用可变长编码方式,有符号的整型值,编码时比通常的int32高效 |
|
sint64 |
sint64 |
同上 |
|
fixed32 |
uint32 |
总是4个字节,如果数值总是比2^28大的话,这个类型会比uint32高效 |
|
fixed64 |
uint64 |
总是8个字节,如果数值总是比2^56大的话,这个类型会比uint64高效 |
|
sfixed32 |
int32 |
总是4个字节 |
|
sfixed64 |
int64 |
总是8个字节 |
|
bool |
bool |
|
|
string |
string |
一个字符串必须是utf-8编码或者7-bit的ascii编码的文本 |
|
bytes |
string |
可能包含任意顺序的字节数据 |
本文详细介绍了Protobuf支持的基本数据类型,并提供了在选择方案时的参考指南,包括double、float、int32、int64、uint32、uint64、sint32、sint64、fixed32、fixed64、sfixed32、sfixed64、bool、string、bytes等类型。此外,文章还讨论了这些类型的特点和应用场景。
725

被折叠的 条评论
为什么被折叠?



