Language Guide (proto3) | proto3 语言指南(三)默认值

默认值

解析消息时,如果编码的消息不包含特定的单数元素,则解析对象中的相应字段将设置为该字段的默认值。这些默认值是特定于类型的:

  • string:默认值为空字符串
  • bytes:默认值为空字节
  • boolean:默认值为false
  • 数值类型:默认值为0
  • 枚举:默认值为第一个定义的枚举值,该值必须是0
  • 消息字段:不设默认值,它的确切值取决于语言。有关详细信息,请参阅生成代码指南

重复字段的默认值为空(通常是适当语言中的空列表)。

请注意,对于标量消息字段,一旦解析了消息,就无法判断字段是显式设置为默认值还是根本没有设置(例如,布尔类型字段值是设置为false,还是默认的false):在定义消息类型时,应该记住这一点。例如,布尔类型字段设置为false时会触发一些行为,如果您不希望这些行为在默认情况下也发生,那么就不要使用布尔类型。另请注意,如果标量消息字段设置为其默认值,则不会在连接上序列化该值。
有关默认值如何在生成代码中工作的更多详细信息,请参阅所选语言的生成代码指南

原文:https://www.cnblogs.com/itheo/p/14273129.html

作者:Theo·Chan
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接,否则必究法律责任
posted @ 2021-01-13 17:10  Theo·Chan  阅读(1047)  评论(0编辑  收藏  举报