可以在选项中将标识符放在括号内,如https://protobuf.dev/reference/protobuf/proto3-spec/#option中所述
例如你可以写
option foo.bar.baz = 1;
并且
option (foo.bar.baz) = 1;
或者
option (foo.bar).baz = 1;
它们有什么区别?为什么语法中需要括号?
可以在选项中将标识符放在括号内,如https://protobuf.dev/reference/protobuf/proto3-spec/#option中所述
例如你可以写
option foo.bar.baz = 1;
并且
option (foo.bar.baz) = 1;
或者
option (foo.bar).baz = 1;
它们有什么区别?为什么语法中需要括号?
使用括号语法是为了在内置选项(由 Protobuf/protoc 直接提供)和外部方定义的自定义选项之间进行区分。有关自定义选项的更多信息,请访问:https://protobuf.dev/programming-guides/proto2/#customoptions
现在,有了自定义选项,
对比
在第一个示例中,您直接设置扩展字段(标量字段)的值。在第二个示例中,您设置子消息的字段。
如果这还不是很清楚,上面的链接有一些很好的例子可以说明我所指的内容。