Language Guide (proto3) | proto3 语言指南(三)默认值
默认值
解析消息时,如果编码的消息不包含特定的单数元素,则解析对象中的相应字段将设置为该字段的默认值。这些默认值是特定于类型的:
- string:默认值为空字符串
- bytes:默认值为空字节
- boolean:默认值为false
- 数值类型:默认值为0
- 枚举:默认值为第一个定义的枚举值,该值必须是0
- 消息字段:不设默认值,它的确切值取决于语言。有关详细信息,请参阅生成代码指南
重复字段的默认值为空(通常是适当语言中的空列表)。
请注意,对于标量消息字段,一旦解析了消息,就无法判断字段是显式设置为默认值还是根本没有设置(例如,布尔类型字段值是设置为false,还是默认的false):在定义消息类型时,应该记住这一点。例如,布尔类型字段设置为
false
时会触发一些行为,如果您不希望这些行为在默认情况下也发生,那么就不要使用布尔类型。另请注意,如果标量消息字段设置为其默认值,则不会在连接上序列化该值。
有关默认值如何在生成代码中工作的更多详细信息,请参阅所选语言的生成代码指南。