内容简介:Protocol Buffers 学习(2):字段类型和其他语言字段类型之间的映射
对照表格
.proto Type | 介绍 | C++ Type | Java Type | Python Type | Go Type | Ruby Type | C# Type | PHP Type |
---|---|---|---|---|---|---|---|---|
double | double | double | float | float64 | Float | double | float | |
float | float | float | float | float32 | Float | float | float | |
int32 |
使用可变长度编码,不能编码负值,如果字段可能有负值,推荐使用 sint32
|
int32 | int | int | int32 | Fixnum 或者 Bignum (按需) | int | integer |
int64 |
使用可变长度编码,不能编码负值,如果字段可能有负值,推荐使用 sint64
|
int64 | long | int/long | int64 | Bignum | long | integer/string |
uint32 | 使用可变长度编码 | uint32 | int | int/long | uint32 | Fixnum 或者 Bignum (按需) | uint | integer |
uint64 | 使用可变长度编码 | uint64 | long | int/long | uint64 | Bignum | ulong | integer/string |
sint32 | 使用可变长度编码,有符号int型,比int32对负数支持更好 | int32 | int | int | int32 | Fixnum 或者 Bignum (按需) | int | integer |
sint64 | 使用可变长度编码,有符号int型,比int64对负数支持更好 | int64 | long | int/long | int64 | Bignum | long | integer/string |
fixed32 |
始终为四个字节,值大于 2^28
时,比uint32更有效 |
uint32 | int | int | uint32 | Fixnum 或者 Bignum (按需) | uint | integer |
fixed64 |
始终为四个字节,值大于 2^56
时,比uint64更有效 |
uint64 | long | int/long | uint64 | Bignum | ulong | integer/string |
sfixed32 | 始终为四个字节 | int32 | int | int | int32 | Fixnum 或者 Bignum (按需) | int | integer |
sfixed64 | 始终为四个字节 | int64 | long | int/long | int64 | Bignum | long | integer/string |
bool | bool | boolean | bool | bool | TrueClass/FalseClass | bool | boolean | |
string | 字符串必须始终包含UTF-8编码或7位ASCII文本 | string | String | str/unicode | string | String (UTF-8) | string | string |
bytes | 可以包含任意的字节序列 | string | ByteString | str | []byte | String (ASCII-8BIT) | ByteString | string |
更多有关编码信息,可以查看 谷歌文档(protobuf编码) 需翻墙
字段默认值
当消息被解析时,如果编码的消息不包含特定的单个元素(字段),则解析对象中的相应字段将被设置为该字段的默认值。 这些默认值是特定于类型的:
- 对于字符串,默认值为空字符串
- 对于字节,默认值为空字节。
- 对于bools,默认值为false。
- 对于数值类型,默认值为零。
- 对于枚举,默认值是第一个定义的枚举值,它必须为0。
- 对于消息字段,这个要看具体实现的语言
以上所述就是小编给大家介绍的《Protocol Buffers 学习(2):字段类型和其他语言字段类型之间的映射》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Protocol Buffers 学习(2):字段类型和其他语言字段类型之间的映射
- presto中不同类型的字段关联问题
- EasyMybatis 1.2.0 发布,支持枚举类型字段
- hive使用struct、map与array类型字段
- yii2 数据库查询结果字段类型的问题
- Date类型字段反序列化后值发生变化问题
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Ruby on Rails实践之路
沃哈 / 科学 / 2010-5 / 48.00元
《Ruby on Rails实践之路:写给PHP和Java开发者的书》内容简介:Ruby on Rails是基于MVC模式的Web框架,用于开发基于数据库的Web应用。Ruby on Rails中内含了所需的Web服务器WEBrick。该框架配置的数据库除了缺省的MySQL外,还可以是Oracle、SQL Server等其他数据库。《Ruby on Rails实践之路:写给PHP和Java开发者的......一起来看看 《Ruby on Rails实践之路》 这本书的介绍吧!