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。
  • 对于消息字段,这个要看具体实现的语言

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

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

浅薄

浅薄

[美]尼古拉斯·卡尔 / 刘纯毅 / 中信出版社 / 2015-11 / 49.00 元

互联网时代的飞速发展带来了各行各业效率的提升和生活的便利,但卡尔指出,当我们每天在翻看手机上的社交平台,阅读那些看似有趣和有深度的文章时,在我们尽情享受互联网慷慨施舍的过程中,我们正在渐渐丧失深度阅读和深度思考的能力。 互联网鼓励我们蜻蜓点水般地从多种信息来源中广泛采集碎片化的信息,其伦理规范就是工业主义,这是一套速度至上、效率至上的伦理,也是一套产量最优化、消费最优化的伦理——如此说来,互......一起来看看 《浅薄》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具