protobuf编译文件和源码在点击打开链接

1:   数据类型:

double: 浮点数

float: 单精度浮点

int32: int类型,使用可变长编码,编码负数不够高效,如果有负数那么使用sint32

sint32: int类型,使用可变长编码, 有符号的整形,比通常的int32高效;

uint32: 无符号整数使用可变长编码方式;

int64 long long , 使用可变长编码方式。编码负数时不够高效——如果有负数,可以使用sint64;

sint64 long long  使用可变长编码方式。有符号的整型值。编码时比通常的int64高效;

uint64: 无符号整数使用可变长编码方式;

fixed32 : 总是4个字节。如果数值总是比总是比2^28大的话,这个类型会比uint32高效。

fixed64: 总是8个字节。如果数值总是比总是比2^56大的话,这个类型会比uint64高效。

sfixed32: 总是4个字节。

sfixed64: 总是8个字节。

bool:bool值

string: 一个字符串必须是UTF-8编码或者7-bit ASCII编码的文本。

bytes: 可能包含任意顺序的字节数据。类似java的ByteString以及 c++ string;

2.enum包

定义enum
enum Direction {
LEFT = 1;
RIGHT = 2;
UP = 3;
DOWN = 4;
};

3.proto定义包

.proto文件新增一个可选的package声明符,用来防止不同的消息类型有命名冲突

包的声明符会根据使用语言的不同影响生成的代码。对于C++,产生的类会被包装在C++的命名空间中

package tutorial; //package声明符

4.mesage嵌套

message Person {}

message AddressBook
{
repeated Person people = 1;
}

5.proto3/proto2区别

Anytax = "proto2"
//或者
Anytax = "proto3"

示例:首先建立person.proto文档

Protobuf数据类型的更多相关文章

  1. Protobuf 数据类型

    .proto Type   Notes C++ Type Java Type double    double  double float    float  float int32 Uses var ...

  2. Google 开源技术protobuf

    http://blog.csdn.net/hguisu/article/details/20721109#0-tsina-1-1601-397232819ff9a47a7b7e80a40613cfe1 ...

  3. Google protobuf proto文件编写规则

    转载自: http://blog.csdn.net/yi_ya/article/details/40404231 1. 简单介绍 protobuf文件:就是定义你要的消息(类似java中的类)和消息中 ...

  4. google protobuf使用

    下载的是github上的:https://github.com/google/protobuf If you get the source from github, you need to gener ...

  5. google_protobuf数据类型

    要通信,必须有协议,否则双方无法理解对方的码流.在protobuf中,协议是由一系列的消息组成的.因此最重要的就是定义通信时使用到的消息格式. Protobuf消息定义 消息由至少一个字段组合而成,类 ...

  6. python读写protobuf

    0.     前期准备 官方protobuf定义 https://code.google.com/p/protobuf/   python使用指南 https://developers.google. ...

  7. ScalaPB(4): 通用跨系统protobuf数据,sbt设置

    我们知道,在集群环境节点之间进行交换的数据必须经过序列化/反序列化处理过程,而在这方面protobuf是一个比较高效.易用的模式.用户首先在.proto文件中用IDL来定义系统中各种需要进行交换的数据 ...

  8. 项目中使用protobuf

    在互种系统中数据通信或数据交换可以使用protobuf,他比json.xml的数据量要小一些. 另外因为消息要单独写一个.proto文件,来生成各平台的代码,所以对跨平台通信来说也比较友好. 一.使用 ...

  9. google protobuf 中的proto文件编写规则

    1. 简单介绍 protobuf文件:就是定义你要的消息(类似Java中的类)和消息中的各个字段及其数据类型(类似java类中的成员变量和他的数据类型) 2. Protobuf消息定义 消息由至少一个 ...

随机推荐

  1. Linux Semaphore

    目录 主要用到的几个函数 0, ftok 1, semget 2, semctl 3, semop 程序semp1.c 程序semp2.c 主要用到的几个函数 0, ftok ftok - conve ...

  2. [development][vim] vim显示空白字符

    1. 作为一个严谨的程序员,你必须关心你敲下过的没一个字符.其中包括空白字符. 2. 有时候你需要review别人的代码,对于哪些肆意使用tab,space,enter的人.你怎么发现那些被他们留下的 ...

  3. oracle执行计划相关

    执行计划相关 根据Operation缩进来判断,缩进最多的最先执行:(缩进相同时,最上面的最先执行) 同一级如果某个动作没有子ID就最先执行 同一级的动作执行时遵循最上最右先执行的原则 TABLE A ...

  4. webpack打包配置模板

    /** * Created by zzq on 2017/3/26. *///__dirname是node.js中的一个全局变量,它指向当前执行脚本所在的目录module.exports = {//注 ...

  5. 如何使用Beyond Compare 对比差异文件【制作Patch(补丁包)文件】

    场景:研发部的代码从SVN变更至GIt,通过Jenkins每天自动生成程序包. 如需要获取单独的程序包更新,而不是整个程序包覆盖更新,这时候就需要用到Beyond Compare 对比工具 操作步骤1 ...

  6. java JDBC (四)

    package cn.sasa.demo4; import java.sql.Connection; import java.sql.PreparedStatement; import java.sq ...

  7. java 数组(一)

    java的数组操作和C#是一样的,不多说明. public class ArrayDemo{ public static void main(String[] args){ //数组的定义 数据类型[ ...

  8. Eclipse设置注释模板和工作空间背景色为豆沙绿

    Eclipse Version: Photon Release (4.8.0). 首先上图,根据图上的步骤即可完成注释模板的设置. 1 如何设置eclipse注释模板的日期格式 在eclipse的 P ...

  9. CSS中position属性介绍(新增sticky)

    position的含义是指定类型,取值类型可以有:static.relative.absolute.fixed.inherit 和 sticky,这里sticky是CSS3新发布的一个属性. 1.po ...

  10. 两个java工程之间的相互调用方法

    如果你有两个java项目的话,如何向他们之间进行信息的通信前提:必须知道要通信的java项目(接收请求方)的服务器的IP地址和访问路径.其实两个java项目之间的通信还是使用HTTP的请求.主要有两种 ...