Protocol Buffers 学习(2):字段类型和其他语言字段类型之间的映射

栏目: 服务器 · 发布时间: 8年前

内容简介: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):字段类型和其他语言字段类型之间的映射》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

小团队构建大网站:中小研发团队架构实践

小团队构建大网站:中小研发团队架构实践

张辉清 等 / 电子工业出版社 / 2019-1 / 69

《小团队构建大网站:中小研发团队架构实践》结合作者近几年的工作经验,总结了一套可直接落地、基于开源、成本低、可快速搭建的中小研发团队架构实践方法。《小团队构建大网站:中小研发团队架构实践》共5篇22章,开篇是本书的导读;架构篇是设计思想的提升,包括企业总体架构、应用架构设计、统一应用分层等;框架篇主讲中间件和工具的使用,包括消息队列、缓存、Job、集中式日志、应用监控和微服务等;公共应用篇是技术与......一起来看看 《小团队构建大网站:中小研发团队架构实践》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码