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 |
可能包含任意順序的字節數據 |