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

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

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

查看所有标签

猜你喜欢:

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

计算机程序设计艺术(第1卷)

计算机程序设计艺术(第1卷)

[美] Donald E. Knuth / 清华大学出版社 / 2002-9 / 80.00元

第1卷首先介绍编程的基本概念和技术,然后详细讲解信息结构方面的内容,包括信息在计算机内部的表示方法、数据元素之间的结构关系,以及有效的信息处理方法。此外,书中还描述了编程在模拟、数值方法、符号计算、软件与系统设计等方面的初级应用。此第3版增加了数十项简单但重要的算法和技术,并根据当前研究发展趋势在数学预备知识方面做了大量修改。一起来看看 《计算机程序设计艺术(第1卷)》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具