首页 > 其他分享 >Protocol Buffers 3 学习笔记

Protocol Buffers 3 学习笔记

时间:2022-12-21 14:00:22浏览次数:56  
标签:map Protocol 数字 笔记 兼容 类型 枚举 序号 Buffers

  • 官方文档地址
  • syntax = "proto3";必须放在.proto文件首行,之前不能有空白行或者注释行,如果不存在或者没有放在首行,则编译器认为是proto2
  • 字段对应的序号,在1-15之内(含)时,编码时占用一个字节,当序号在16-2047之间(含),编码时占用2个字节
  • 字段对应的序号,最小是1,最大是536,870,911。其中19000-19999之间(含)为保留数字,不能使用,否则编译时会报错。自定义的保留数字(用reserved修饰的数字)也不能用作序号,否则编译时也会报错。
  • repeated修饰的集合数据是有序的
  • 注释使用的C/C++注释语法,即:///*...*/
  • 保留字段和数字,用reserved修饰,用于禁用某些字段名或者序号。例如:本次修改删除了一个字段,为避免其他人员复用此字段或序号,故可以将保留字段和序号设置为保留,从而避免后续版本与旧版本字段产生歧义、冲突、匪夷所思的bug
  • 枚举类型必须包含一个序号为0的枚举字段,并且需要是第一个枚举字段
  • 可以通过option allow_alias = true;来支持不同常量指向相同的值
  • 同一个.proto文件中(含导入的其它.proto文件),不可以包含相同的枚举字段名称,不同的枚举类型中也不可以包含相同的枚举字段名称,否则编译器会报错
  • 消息类型的更新规则
    • 不要改变已存在字段的序号
    • 如果新增了字段,新生成的协议代码能够正常解析旧的协议数据
    • 已存在的字段可以移除,但序号不要被重新使用,可以通过repeated将序号保留
    • int32uint32int64uint64bool类型之间是互相兼容的
    • sint32sint64类型之间是互相兼容的
    • stringbytes类型之间是互相兼容的(前提是bytes是UTF-8格式)
    • fixed32sfixed32类型之间是互相兼容的
    • fixed64sfixed64类型之间是互相兼容的
  • map类型中的键的类型只能是整型或字符串(即除浮点型和bytes类型之外的所有标量都支持),map类型中的值的类型可以是除map以外的所有类型
  • map类型的字段不能用repeated修饰
  • map类型的数据的顺序,如果键是字符串类型,则通过键字符串排序,如果键是数字,则通过键的数字大小排序

标签:map,Protocol,数字,笔记,兼容,类型,枚举,序号,Buffers
From: https://www.cnblogs.com/freelancy/p/16996091.html

相关文章

  • 论文《LIBRE: The Multiple 3D LiDAR Dataset》笔记
    前倾摘要:最近在调研关于雷达性能评测的相关资料。于是就写一下笔记记录一下调研过程经过上个周的调研,一共找到两份相关参考资料:汽车的智能化发展让车载激光雷达变成一桩热......
  • 视觉SLAM十四讲之对极几何笔记
    ​​https://www.guyuehome.com/7832​​​相机成像过程p是图像的像素点坐标,K是相机的内参矩阵,P是相机坐标系下的三维坐标。将世界坐标系转化成像素坐标系的公式如下:其中......
  • 李群和李代数以及线性变换相关笔记
    参考链接:​​https://www.bilibili.com/video/BV1ys411472E?p=5​​Lie’sGroupisGroup,既是一个群,又是流形。群有两种运算群运算群乘......
  • 计算机组成与设计:笔记
    ComputerOrganizationandDesign目录ComputerOrganizationandDesignSec1Abstraction1.2EightGreatIdeasinComputer1.3BelowyourProgram1.6Performance(K......
  • 操作系统概念:笔记
    OperationSystemConcepts目录OperationSystemConceptsPart2PROCESSMANAGEMENTChap3Process(Someconcept)3.1ProcessConcept3.1.1Process3.1.2ProcessStat......
  • 算法导论:笔记
    AlgorithmandDataStructure目录AlgorithmandDataStructureSec6HeapSort6.1Whatisheap?6.2MaintainthePropertiesofHeap6.3BuildaHeap6.4HeapSort6.5......
  • 摄影的实用性与艺术性漫谈笔记
    摄影的实用性与艺术性漫谈笔记来自杨晓利老师的北京工业大学公开课:摄影的实用性与艺术性漫谈目录摄影的视觉意义摄影的必备器材与拍摄技法相机分类相机部件摄影的视觉平......
  • 深入理解Java核心技术:写给Java工程师的干货笔记(基础篇)张洪亮著编程语言专业科技电子工
    深入理解Java核心技术:写给Java工程师的干货笔记(基础篇)张洪亮著编程语言专业科技电子工业出版   ......
  • LeetCode刷题笔记
    目录AlgorithmNote基础数组链表哈希表字符串栈与队列二叉树参考链接:代码随想录AlgorithmNote基础数组67:Sqrt-X二分查找法:x平方根的整数部分是ans是满足\(k^2......
  • [2] HEVD 学习笔记:栈溢出漏洞训练
    2.HEVD栈溢出漏洞训练2.1漏洞原理​ 当函数退出的时候,会将保存在栈中的返回地址取出,跳转到该地址继续执行,以此来执行函数调用以后的程序。而如果用户的输入没有得到控......