1.基本类型
这些是原始的基本数据类型,用于存储数值和字符串。包括:
-
double
:双精度浮点数
-
float
:单精度浮点数
-
int32
:32 位有符号整数
-
int64
:64 位有符号整数
-
uint32
:32 位无符号整数
-
uint64
:64 位无符号整数
-
sint32
:32 位有符号整数(使用变长编码)
-
sint64
:64 位有符号整数(使用变长编码)
-
fixed32
:32 位固定长度整数
-
fixed64
:64 位固定长度整数
-
sfixed32
:32 位固定长度有符号整数
-
sfixed64
:64 位固定长度有符号整数
-
bool
:布尔值
-
string
:字符串
-
bytes
:字节序列
2.枚举类型
枚举类型用于定义一组可能的取值。每个枚举字段都有一个与之关联的整数值。你可以为每个枚举值指定一个名称和一个整数值。例如:
enum Status {
OK = 0;
ERROR = 1;
CANCELLED = 2;
}
3.消息类型
消息类型是 Protocol Buffers 中最重要的类型之一。它们用于定义复杂的数据结构,可以包含其他字段和消息类型。你可以嵌套消息类型以创建更复杂的数据结构。就好比Java中的类,go中的结构体
message Person {
string name = 1;
int32 age = 2;
repeated string hobbies = 3;
}
4重复字段
重复字段允许你在消息中包含一个字段的多个值。你可以使用 repeated
关键字来定义重复字段。重复字段可以包含基本类型、枚举类型或消息类型。例如:
message MyMessage {
repeated int32 numbers = 1;
repeated string names = 2;
repeated Person contacts = 3;
}