如何在协议缓冲区中提供默认值?

时间:2016-05-26 11:19:57

标签: protocol-buffers

message Person {
  required Empid = 1[default = 100]
  required string name = 2 [default = "Raju"];
  optional string occupation = 3;
  repeated string snippets = 4;
}

我可以提供上面提到的默认值吗?

2 个答案:

答案 0 :(得分:7)

对于proto3,不允许使用自定义默认值。

答案 1 :(得分:1)

是的,您可以按照自己的意愿提供默认值。defaultrequired的可选项,但对于optional,您必须提及default值其他类型的特定值自动分配。此外,您忘记提及Empid的类型。

protobuf语言指南指出

  

如果没有为optional元素指定默认值,则a   而是使用特定于类型的默认值:对于strings,默认值   value是空字符串。对于bool s,默认值为 false 。对于   数字类型,默认值为。对于enums,默认值   是枚举类型定义中列出的第一个值。这意味着   在枚举的开头添加值时必须小心   价值表。