Protocol Buffers 学习(6):文件 | 字段选项介绍

栏目: Java · 发布时间: 8年前

内容简介:Protocol Buffers 学习(6):文件 | 字段选项介绍

.proto 文件中的单独声明可以使用多个选项进行注释。 选项不会更改声明的整体含义,但可能会影响其在特定上下文中的处理方式。 可用选项的完整列表在 google/protobuf/descriptor.proto 中定义。也就是说不同的选项可能只在编译某种语言时才会生效

一些选项是文件级选项,这意味着它们应该写在顶级作用域中,而不是在任何消息,枚举或服务定义内。 一些选项是消息级选项,这意味着它们应该写入消息定义内。 一些选项是字段级选项,这意味着它们应该写在字段定义中。 枚举类型,枚举值,服务类型和服务方式也可以选择选项。 然而,目前没有任何有用的选项

以下是一些最常用的选项:

(文件选项)

  • java_package:这个选项可以在编译成 java 类代码是设置类名
option java_package = "com.example.foo";
  • java_multiple_files:Causes top-level messages, enums, and services to be defined at the package level, rather than inside an outer class named after the .proto file.(有合适的理解请评论留言~)
option java_multiple_files = true;
  • java_outer_classname : 要生成的最外层Java类的类名(因此是文件名)。 如果在 .proto 文件中没有指定明确的 java_outer_classname ,则通过将 .proto 文件名转换为 camel-case 来构造类名称(因此 foo_bar.proto 变为 FooBar.java )。 如果不生成Java代码,则此选项不起作用。
option java_outer_classname = "Ponycopter";
  • optimize_for:可以设置为SPEED,CODE_SIZE或LITE_RUNTIME。 这将影响C ++和Java代码生成器(以及可能的第三方生成器),方法如下:

    • SPEED (default): 高效的方式编译
    • CODE_SIZE:生成的代码类最少,生成的总代码量也小,但是操作速度会变慢
    • LITE_RUNTIME:编译器将会使用一个轻量的库,但是也会少一些功能,一般用在受限的平台上(比如:手机)。编译器仍将像SPEED模式一样生成所有方法的快速实现。 生成的类只会在每个语言中实现MessageLite接口,该接口仅提供完整Message接口的方法的一部分。
option optimize_for = CODE_SIZE;
  • cc_enable_arenas:生成c++代码时开启 arena alloction
  • objc_class_prefix:设置生成的Objective-C代码的前缀

(字段选项)

  • deprecated:标记以后,表示该字段已经弃用,不应该在新代码中使用,未来可能要替换掉
int32 old_field = 6 [deprecated=true];

以上所述就是小编给大家介绍的《Protocol Buffers 学习(6):文件 | 字段选项介绍》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

MATLAB在数学建模中的应用

MATLAB在数学建模中的应用

卓金武 编 / 北京航空航天大学 / 2011-4 / 34.80元

《MATLAB在数学建模中的应用》从数学建模的角度介绍了MATLAB的应用。《MATLAB在数学建模中的应用》的4位作者均具有实际的数学建模参赛经历和竞赛指导经验。书中内容完全是根据数学建模竞赛的需要而编排的,涵盖了绝大部分数学建模问题的MATLAB求解方法。 《MATLAB在数学建模中的应用》内容分上下两篇。上篇介绍数学建模中常规方法MATLAB的实现,包括MATLAB交互、数据建模、程序......一起来看看 《MATLAB在数学建模中的应用》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换