【proto3】Scalar message fields

标量消息字段可以具有以下类型之一 ,该表显示 .proto 文件中指定的类型,以及自动生成的类中的相应类型:

.proto 类型 Go 类型 注释 默认值
int32 int 使用可变长度编码。 对负数进行编码效率低下。如果您的字段可能有负值,请改用 sint32。 0
int64 long 使用可变长度编码。 对负数进行编码效率低下。如果您的字段可能有负值,请改用 sint64。 0
uint32 uint 使用可变长度编码。 0
uint64 ulong 使用可变长度编码。 0
sint32 int 使用可变长度编码。 带符号的 int 值。 这些比常规 int32 更有效地编码负数。 0
sint64 long 使用可变长度编码。 带符号的 int 值。 这些比常规 int64 更有效地编码负数。 0
fixed32 uint32 总是四个字节。 如果值通常大于 2^28,则比 uint32 更有效。 0
fixed64 uint64 总是八个字节。 如果值通常大于 2^56,则比 uint64 更有效。 0
sfixed32 int32 总是四个字节。 0
sfixed64 int64 总是八个字节。 0
float float32 0
double float64 0
bool bool false
string string 字符串必须始终包含 UTF-8 编码或 7 位 ASCII 文本,并且不能超过 2^32。 empty string
bytes []byte 可以包含不超过 2^32 的任意字节序列。 empty bytes
  • 对于枚举,默认值是第一个定义的枚举值,必须为 0。
  • 对于消息字段,未设置该字段。 它的确切值取决于语言。
  • 请注意,对于标量消息字段,一旦解析了消息,就无法判断一个字段是显式设置为默认值,还是根本没有设置(例如布尔值是否设置为 false)。
  • if a scalar message field is set to its default, the value will not be serialized on the wire.

你可能感兴趣的:(【proto3】Scalar message fields)