数据类型

最近更新时间:2022-05-13 11:23:15

我的收藏
TcaplusDB 支持的 Proto Buffers 数据类型。

proto3 数据类型与编程语言类型映射

.proto 类型
C++ 类型
Java 类型
Python 类型
Go 类型
Ruby 类型
C# 类型
PHP 类型
Dart 类型
描述
double
double
double
float
float64
float
double
float
double
-
float
float
float
float
float32
float
float
float
double
-
int32
int32
int
int
int32
fixnum/bignum
(根据需要)
int
integer
int
使用可变长度编码。
负数编码效率低,如果您的字段可能具有负值,请改用 sint32。
int64
int64
long
int/long
int64
bignum
long
integer/string
Int64
使用可变长度编码。
负数编码效率低,如果您的字段可能具有负值,请改用 sint64。
uint32
uint32
int
int/long
uint32
fixnum/bignum
(根据需要)
uint
integer
int
使用可变长度编码。
uint64
uint64
long
int/long
uint64
bignum
ulong
integer/string
Int64
使用可变长度编码。
sint32
int32
int
int
int32
fixnum/bignum
(根据需要)
int
integer
int
使用可变长度编码。
sint64
int64
long
int/long
int64
bignum
long
integer/string
Int64
使用可变长度编码。
有符号的 int 值。与常规 int32 相比,它们能更有效地编码负数。
fixed32
uint32
int
int/long
uint32
fixnum/bignum
(根据需要)
uint
integer
int
始终为四个字节。
如果值通常大于2^28,则比 uint32 更有效。
fixed64
uint64
long
int/long
uint64
bignum
ulong
integer/string
Int64
始终为八个字节。
如果值通常大于2^56,则比 uint64 更有效。
sfixed32
int32
int
int
int32
fixnum/bignum
(根据需要)
int
integer
int
始终为四个字节。
sfixed64
int64
long
int/long
int64
bignum
long
integer/string
Int64
始终为八个字节。
bool
bool
boolean
bool
bool
trueClass/falseClass
bool
boolean
bool
-
string
string
String
str/unicode
string
string(UTF -8)
string
string
string
字符串必须始终包含 UTF-8 编码或7位 ASCII 文本,并且不能超过2^32。
bytes
string
ByteString
str
byte
string(ASCII-8BIT)
bytestring
string
-
可以包含不超过2^32个任意字节序列。

proto2 数据类型与编程语言类型映射

.proto 类型
C++ 类型
Java 类型
Python 类型
Go 类型
描述
double
double
double
float
*float64
-
float
float
float
float
*float32
-
int32
int32
int
int
*int32
使用可变长度编码。负数编码效率低,如果您的字段可能具有负值,请改用 sint32。
int64
int64
long
int/long
*int64
使用可变长度编码。负数编码效率低,如果您的字段可能具有负值,请改用 sint64。
uint32
uint32
int
int/long
*uint32
使用可变长度编码。
uint64
uint64
long
int/long
*uint64
使用可变长度编码。
sint32
int32
int
int
*int32
使用可变长度编码。有符号的 int 值。与常规 int32 相比,它们能更有效地编码负数。
sint64
int64
long
int/long
*int64
使用可变长度编码。有符号的 int 值。与常规 int64 相比,它们能更有效地编码负数。
fixed32
uint32
int
int/long
*uint32
始终为四个字节。如果值通常大于2^28,则比 uint32 更有效。
fixed64
uint64
long
int/long
*uint64
始终为八个字节。如果值通常大于2^56,则比 uint64 更有效。
sfixed32
int32
int
int
*int32
始终为四个字节。
sfixed64
int64
long
int/long
*int64
始终为八个字节。
bool
bool
boolean
bool
*bool
-
string
string
String
unicode(Python 2)或
str(Python 3)
*string
字符串必须始终包含 UTF-8 编码或7位 ASCII 文本。
bytes
string
ByteString
bytes
byte
可以包含任意字节序列。