简单protobuf
- protobuf的数据类型,有最简单的那种数据类型,就是一个文件中,定义了一个message
- 可以在一个文件中定义两个message,两个message之间是没有关联的
- 可以在一个文件中,定义两个message,其中一个是简单的,他作为了另个一的字段
message SearchResponse {repeated Result result = 1;
}
message Result {required string url = 1;optional string title = 2;repeated string snippets = 3;
}
也不一定是简单的了,就是其中一个是另一个的字段
- 还有一种是嵌套类型的,就是在一个message中定义了另外的一个message
message SearchResponse {message Result {required string url = 1;optional string title = 2;repeated string snippets = 3;}repeated Result result = 1;
}
这个加在中间的message类型,可以理解成是一个子消息
同时可以在其他的消息中使用这个子消息
message SomeOtherMessage {optional SearchResponse.Result result = 1;
}
当然上面的也可以嵌套任意多的message
判断,如果消息类型是repeated的话,这个时候就可以判断的是size,如果是没有repeated,就是其他类型的话,就判断通过has进行判断
本公司基本上很少使用required
简单protobuf相关推荐
- 深入理解 ProtoBuf 原理与工程实践(概述)
ProtoBuf 作为一种跨平台.语言无关.可扩展的序列化结构数据的方法,已广泛应用于网络数据交换及存储.随着互联网的发展,系统的异构性会愈发突出,跨语言的需求会愈加明显,同时 gRPC 也大有取代R ...
- 深入理解 ProtoBuf 原理与工程实践
ProtoBuf 作为一种跨平台.语言无关.可扩展的序列化结构数据的方法,已广泛应用于网络数据交换及存储.随着互联网的发展,系统的异构性会愈发突出,跨语言的需求会愈加明显,同时 gRPC 也大有取代R ...
- protobuf和socket通信简单实例
protobuf和socket通信简单实例 protobuf是 Google 公司内部的混合语言数据标准,可以用来定义通信的协议,由于其有序列化和反序列化的操作,减小了存储或通信的数据量,从而达到 ...
- linux下使用protobuf实现简单配置功能
http://blog.csdn.net/flyan338/article/details/8448518 前言: 程序一般需要load一些参数列表,一般来说我们可以通过linux自带的命令行解析函数 ...
- Protobuf介绍及简单使用(下)之文件读写
目录 Bin二进制文件 写bin文件API 用例一 读bin文件API 用例二 Prototxt文件 写Prototxt文件API 用例三 读Prototxt文件API 用例四 caffe中的prot ...
- Protobuf介绍及简单使用(上)
目录 Protobuf 介绍 优势 protobuf语法 Specifying Field Rules Data type Data name Number Protobuf注释 保留字段与标识符 s ...
- linux加protobuf变量环境,protobuf简单介绍和ubuntu 16.04环境下安装教程
protobuf简单介绍 protobuf是谷歌的开源序列化协议框架,结构类似于XML,JSON这种,显著的特点是二进制的,效率高,主要用于通信协议和数据存储等方面,算是一种结构化数据的表示方法. p ...
- Protobuf简单编写与使用
Protobuf简单介绍 首先Protobuf是google公司提出的一种序列化方法,因为其在网络传输中优点较多,同时使用简单方便维护,因此现如今Protobuf以及逐渐取代Json来传输数据. Pr ...
- CocosCreator中Protobuf的简单使用
cocosCreator中Protobuf的简单使用 proto文件格式: pro1.jpeg 准备工具: cocosCreator webStorm或者VSCode 安装node.js 下载prot ...
最新文章
- .Net Discovery 系列之四--深入理解.Net垃圾收集机制(下)
- 写个Fragment方便的抽象基类 BaseFragment
- java第五章 多线程_java多线程编程核心技术——第五章总结
- MongoDB的查询操作
- php curl json post请求_php post请求发送json对象数据参数
- Javascript学习总结 - JS基础系列三
- ASP.NET Web API中实现版本的几种方式
- 全排列---STL方法与递归方法
- 决策树(二)--C4.5
- OpenWrt--高通QCA9563添加多wan口方法
- 2022年安全员-A证考试模拟100题模拟考试平台操作
- U盘强制格式化的解决方案
- 电脑蓝牙音箱,电脑怎么连蓝牙音响吗
- 如何找到自己正确需要的抖音搜索关键词
- Java实现图片压缩功能
- 嘉兴 机器人仓库 菜鸟_菜鸟物流嘉兴未来园区的工业机器人系统运维员的一天...
- Freemarker - 根据模板动态生成word文档
- 随机获取4位26个英文字母和数字组合的值(4位随机码)
- 计算机课翻译成英语,计算机课程英文翻译
- 课代表|支付500万美元,为什么连FBI都无法解开美国油管的勒索软件密码?
热门文章
- 前置体验,才是打动用户的神器
- 敏捷宣言遵循的十二条原则
- oracle 分区使用情况,Oracle Hash分区的使用总结
- micropython stm32f103_micropython
- ensp 路由表_华为模拟器ensp——静态路由实验
- 在内网中使用maven_maven构建docker镜像三部曲之三:推送到远程仓库(内网和阿里云)-Go语言中文社区...
- java 多选列表框_快逸报表:填报中的下拉多选列表框
- mysql数据库解压安装教程_MySQL数据库之windows 10下解压版MySql安装配置方法教程...
- 【C++】多态(早期绑定、后期绑定)、抽象类(纯虚函数)、虚析构函数
- 2021贵州高考成绩查询文科,贵州高考排名对应大学-贵州高考位次查询(2021年文科参考)...