Prototype备忘录

Protobuf使用指南

1..proto文件第一行syntax = "proto3";确定使用的proto版本。如果不加这一行,默认使用proto2,注意proto2和proto3语法不同。


2.如果怕message重名,第二行会声明包类型。package foo.bar;如果是在golang里,可以使用go_package

重写自动生成的包。

package exmaple.high_score;

option go_package = "hs";


3.定义一个消息类型:

message SearchRequest {

  string query = 1;

  int32 page_number = 2;
  int32 result_per_page = 3;

}

可以看到message的字段都有一个数字与之对应,这里是1,2,3,都是不同且唯一的数字.这些字段值用来在消息二进制格式里区分字段,一旦开始使用就不应该再改动。

字段值1-15,用一个自己来编码,包括字段值和字段类型。

字段16-2047用两个字节。所以应该保留1-15给经常使用的字段。

最小值可以设置为1,最大2-29次幂-1(536,870,911)。

pb预先保留的值FieldDescriptor::kFirstReservedNumber(19000)-FieldDescriptor::kLastReservedNumber(19999)也不能用。


4.指定字段规则

    singular : message可以包含0个或者最多1个该字段

    repeated:可重复任意数量,包括0个。

在proto3中,repeated标量字段默认使用[packed=true];




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值