Protobuf数据类型 |
您所在的位置:网站首页 › float编码 › Protobuf数据类型 |
protobuf编译文件和源码在点击打开链接
1: 数据类型: double: 浮点数 float: 单精度浮点 int32: int类型,使用可变长编码,编码负数不够高效,如果有负数那么使用sint32 sint32: int类型,使用可变长编码, 有符号的整形,比通常的int32高效; uint32: 无符号整数使用可变长编码方式; int64 long long , 使用可变长编码方式。编码负数时不够高效——如果有负数,可以使用sint64; sint64 long long 使用可变长编码方式。有符号的整型值。编码时比通常的int64高效; uint64: 无符号整数使用可变长编码方式; fixed32 : 总是4个字节。如果数值总是比总是比2^28大的话,这个类型会比uint32高效。 fixed64: 总是8个字节。如果数值总是比总是比2^56大的话,这个类型会比uint64高效。 sfixed32: 总是4个字节。 sfixed64: 总是8个字节。 bool:bool值 string: 一个字符串必须是UTF-8编码或者7-bit ASCII编码的文本。 bytes: 可能包含任意顺序的字节数据。类似java的ByteString以及 c++ string; 2.enum包 定义enum enum Direction { LEFT = 1; RIGHT = 2; UP = 3; DOWN = 4; }; 3.proto定义包
.proto文件新增一个可选的package声明符,用来防止不同的消息类型有命名冲突 包的声明符会根据使用语言的不同影响生成的代码。对于C++,产生的类会被包装在C++的命名空间中 package tutorial; //package声明符 4.mesage嵌套 message Person {} message AddressBook { repeated Person people = 1; }5.proto3/proto2区别 Anytax = "proto2" //或者 Anytax = "proto3"
示例:首先建立person.proto文档
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |