内容简介: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):文件 | 字段选项介绍》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
马云现象的经济学分析:互联网经济的八个关键命题
胡晓鹏 / 上海社会科学院出版社 / 2016-11-1 / CNY 68.00
互联网经济的产生、发展与扩张,在冲击传统经济理论观点的同时,也彰显了自身理论体系的独特内核,并与那种立足于工业经济时代的经典理论发生显著分野。今天看来,“马云”们的成功是中国经济长期“重制造、轻服务,重产能、轻消费,重国有、轻民营”发展逻辑的结果。但互联网经济的发展却不应仅仅止步于商业技巧的翻新,还需要在理论上进行一番审慎的思考。对此,我们不禁要问:互联网经济驱动交易发生的机理是什么?用户基数和诚......一起来看看 《马云现象的经济学分析:互联网经济的八个关键命题》 这本书的介绍吧!