protobuf 数据类型: double double double float float float int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long uint32 Uses variable-length encoding. uint32 int uint64 Uses variable-length encoding. uint64 long sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long fixed32 Always four bytes. More efficient than uint32 if values are often greater than 228. uint32 int fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 256. uint64 long sfixed32 Always four bytes. int32 int sfixed64 Always eight bytes. int64 long bool bool boolean string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String bytes May contain any arbitrary sequence of bytes. string ByteString