从proto3
开始,protobuf 规范去掉了optional
andrequired
字段。现在只能通过查看文档来确定消息中的字段是否可选的唯一方法,这不是很方便。我们如何将optional_
其用作可选字段的字段名称的前缀。
无optional_
前缀:
原型缓冲区
message User {
string user_id = 1;
string name = 2;
string email = 3;
}
代码
# Don't know which fields are optional, we have to check the docs:
user.user_id = 1
user.name = "bob"
user.email = "bob@gmail.com"
带optional_
前缀:
原型缓冲区
message User {
string user_id = 1;
string optional_name = 2;
string optional_email = 3;
}
代码
# it is more informative but doesn't read naturally in English.
user.user_id = 1
user.optional_name = "bob"
user.optional_email = "bob@gmail.com"
我通常没有看到这样命名的可选字段。它在我过去的一个团队中使用过,非常方便。您对此有什么特别的看法吗?