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;
}