packages

可以在.proto文件中增加一个可选的package标记来防止protocol消息类型之间的名字冲突.

package foo.bar;
message Open { ... }

在定义消息类型的字段时可以这样使用package标志:

message Foo {
  ...
  foo.bar.Open open = 1;
  ...
}

包标志对生成代码的影响依赖所选的语言:

  • c++中, 生成类包裹在c++ namespace中. 例如, Open将在namespace foo::bar中.
  • 在java中, 包被作为java package使用, 除非你在.proto文件中显式提供java_package选项.
  • 在Python中, 这个包指令将被忽略, 因为Python模块是根据他们在文件系统中的位置被组织的.
  • 在Go中, 包被作为Go package使用, 除非你在.proto文件中显式提供go_package选项.
  • 在Ruby中, 生成的代码被包裹在内嵌的Ruby namespaces, 转换为要求的Ruby capitalization风格(第一个字符大写;如果第一个字符不是字母则加一个PB_前缀). 例如, Open将在namespace Foo::Bar中.
  • 在C#中,包在转换为PascalCase后用作命名空间,除非在.proto文件中显式提供option csharp_namespace,例如Open将在命名空间Foo.Bar中。

results matching ""

    No results matching ""