内容简介: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):字段类型和其他语言字段类型之间的映射
- presto中不同类型的字段关联问题
- EasyMybatis 1.2.0 发布,支持枚举类型字段
- hive使用struct、map与array类型字段
- yii2 数据库查询结果字段类型的问题
- Date类型字段反序列化后值发生变化问题
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Kotlin实战
【美】Dmitry Jemerov(德米特里·詹莫瑞福)、【美】 Svetlana Isakova(斯维特拉娜·伊凡诺沃) / 覃宇、罗丽、李思阳、蒋扬海 / 电子工业出版社 / 2017-8 / 89.00
《Kotlin 实战》将从语言的基本特性开始,逐渐覆盖其更多的高级特性,尤其注重讲解如何将 Koltin 集成到已有 Java 工程实践及其背后的原理。本书分为两个部分。第一部分讲解如何开始使用 Kotlin 现有的库和API,包括基本语法、扩展函数和扩展属性、数据类和伴生对象、lambda 表达式,以及数据类型系统(着重讲解了可空性和集合的概念)。第二部分教你如何使用 Kotlin 构建自己的 ......一起来看看 《Kotlin实战》 这本书的介绍吧!