游戏数据库 TcaplusDB 数据类型

这篇列出了TcaplusDB支持的Proto Buffers数据类型,包括proto3和proto2版本与多种编程语言(C++、Java、Python、Go等)的完整类型映射表。 proto3映射表:涵盖double、float、int32、int64等18种类型,并说明编码方式(如负数建议用sint32)。 proto2映射表:涵盖15种基础类型,与proto3类型一致但支持语言较少(C++、Java、Python。

相关产品
游戏数据库 TcaplusDB 产品页,含版本规格、价格与购买入口。

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 可以包含任意字节序列。
赞 (0)
上一篇 4天前
下一篇 4天前