消息解析默认值

当一个消息被解析的时候,如果被编码的信息不包含一个特定的singular元素,被解析的对象锁对应的域被设置位一个默认值,对于不同类型指定如下:

  • 对于strings,默认是一个空string.
  • 对于bytes,默认是一个空的bytes.
  • 对于bools,默认是false.
  • 对于数值类型,默认是0.
  • 对于枚举,默认是第一个定义的枚举值,必须为0.
  • 对于消息类型(message),域没有被设置,确切的消息是根据语言确定的,更详细的可以查看API Reference.

对于可重复域的默认值是空(通常情况下是对应语言中空列表)。

注意:对于标量消息域,一旦消息被解析,就无法判断域释放被设置为默认值(例如,例如boolean值是否被设置为false)还是根本没有被设置。你应该在定义你的消息类型时非常注意。例如,比如你不应该定义boolean的默认值false作为任何行为的触发方式。也应该注意如果一个标量消息域被设置为标志位,这个值不应该被序列化传输。