Proto2与Proto3区别

  • 使用 syntax = "proto3" 指定proto3,否则编译器会假定为proto2
  • proto3字段默认为singular,不需要显式添加
  • proto3移除required,proto2也不推荐使用required
  • proto3 repeated默认设置[packed = true],proto2需要显式设置
  • proto2可以使用default指定字段默认值,proto3移除default,strings默认是空字符,bool默认是false,数字类型默认是0等
    • 判断上要注意默认值,比如bool设置为false和默认值相同
    • 设为默认值,不会序列化这个字段,从而节省空间
    • 默认类型文档:https://developers.google.com/protocol-buffers/docs/proto3#default
  • proto3枚举类型第一个值必须为0,默认值为第一个值
  • proto3移除groups,proto2也废弃groups,可以用嵌套message代替
  • proto2和proto3 version 3.5及之后的版本 解析和序列化保留未知字段,proto3 version 3.5之前的版本丢弃未知字段
  • proto3移除extensions,增加Any,Any代替extensions
  • proto3增加json映射支持

 

参考:

https://blog.csdn.net/huanggang982/article/details/77944174

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值