内容简介: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。
- 对于消息字段,这个要看具体实现的语言
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
分布式服务架构:原理、设计与实战
李艳鹏、杨彪 / 电子工业出版社 / 2017-8 / 89.00
《分布式服务架构:原理、设计与实战》全面介绍了分布式服务架构的原理与设计,并结合作者在实施微服务架构过程中的实践经验,总结了保障线上服务健康、可靠的最佳方案,是一本架构级、实战型的重量级著作。 《分布式服务架构:原理、设计与实战》以分布式服务架构的设计与实现为主线,由浅入深地介绍了分布式服务架构的方方面面,主要包括理论和实践两部分。理论上,首先介绍了服务架构的背景,以及从服务化架构到微服务架......一起来看看 《分布式服务架构:原理、设计与实战》 这本书的介绍吧!