mac下protobuf配置记录
sudo vi /etc/profile
加到文件底部
export PATH=$PATH:$GOBIN:/usr/local/go/bin
export GOPATH=/Users/jinfuzhang/go
export GOBIN=/Users/jinfuzhang/go/bin
export GO111MODULE=on
export GOPROXY=https://goproxy.io
按esc键,输入
:wq!
控制台执行
source /etc/profile
然后执行
brew install protobuf
go install github.com/golang/protobuf/{proto,protoc-gen-go}
go install github.com/micro/protoc-gen-micro
会根据GOPATH路径安装到下面的bin文件夹
使用
创建 Demo golang工程
Paste_Image.png在 example 包中编写 person.proto
syntax = "proto3";
package example; message person { // aa 会生成 Aa 命名的结构体
int32 id = 1;
string name = 2;
} message all_person { // aa_bb 会生成 AaBb 的驼峰命名的结构体
repeated person Per = 1;
}
进入 Demo 工程的 example 目录,使用 protoc 编译 person.proto
$ protoc --go_out=. person.proto
就会生成 person.pb.go 文件
- 在 golang 工程中使用 protobuf 进行序列化与反序列化
main.go:package main import (
"github.com/golang/protobuf/proto"
"Demo/example"
"log"
) func main() {
// 为 AllPerson 填充数据
p1 := example.Person{
Id:*proto.Int32(1),
Name:*proto.String("xieyanke"),
} p2 := example.Person{
Id:2,
Name:"gopher",
} all_p := example.AllPerson{
Per:[]*example.Person{&p1, &p2},
} // 对数据进行序列化
data, err := proto.Marshal(&all_p)
if err != nil {
log.Fatalln("Mashal data error:", err)
} // 对已经序列化的数据进行反序列化
var target example.AllPerson
err = proto.Unmarshal(data, &target)
if err != nil{
log.Fatalln("UnMashal data error:", err)
} println(target.Per[0].Name) // 打印第一个 person Name 的值进行反序列化验证
}
mac下protobuf配置记录的更多相关文章
- Mac下 如何配置虚拟机软件Parallel Desktop--超详细
Mac下 如何配置虚拟机软件Pparallel Desktop--超详细 Mac 的双系统解决方案有两种,一种是使用Boot Camp分区安装独立的Windows,一种是通过安装Parallels D ...
- MAC下Xcode配置opencv(2017.3.29最新实践,亲测可行)
本文原创,未经同意,谢绝转载!(转载请告知本人并且经过本人同意--By Pacific-hong) 本人小硕一枚,因为专业方向图像相关,所以用到opencv,然后网上MAC下Xcode配置opencv ...
- MAC下Xcode配置opencv(2017.3.29最新实践,亲测可行)(转)
本文原创,未经同意,谢绝转载!(转载请告知本人并且经过本人同意--By Pacific-hong) 本人小硕一枚,因为专业方向图像相关,所以用到opencv,然后网上MAC下Xcode配置opencv ...
- Mac 下VIM配置
Mac下VIM配置 首先,我们去这里下载MacVim,也可用这个网址:(http://code.google.com/p/macvim/),进入后的界面如下: ____________________ ...
- Mac下iTerm2配置lrzsz功能
Mac下iTerm2配置lrzsz功能 rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具. 优点就是不用再开一个sftp工具登录上去上传下载文件. 近期在mac上通 ...
- Mac下tomcat配置ssl
最近在搞单点登录CAS,第一步就是需要给tomcat配置证书.但是,第一次配置就遇到了个问题排插了一下午.下面来存一份文档,以备以后遇到. 一.首先准备好环境 java环境:配置好环境变量,找到jdk ...
- 2016年最新mac下vscode配置golang开发环境支持debug
网上目前还找不到完整的mac下golang环境配置支持,本人配置成功,现在整理分享出来. mac最好装下xcode,好像有依赖关系安装Homebrew打开终端窗口, 粘贴脚本执行/usr/bin/ru ...
- Mac下如何配置环境变量
以前都是在Windows平台上开发,在配置一些框架的时候,为了能够在命令行中调用,一般都会配置bin目录到环境变量中,这是为了让命令行在执行的时候,能够查找到对应的执行文件. 现在工作使用Mac,配置 ...
- windows和mac下分别配置虚拟主机
windows下配置 1.找到apache的配置文件,httpd.conf 2.找到 LoadModule rewrite_module modules/mod_rewrite.so 去掉前边的# 3 ...
随机推荐
- jmeter接口测试 -- 数据库操作(mysql)
一.操作类型 语句类型 1.查询语句 2.非查询语句 1)update 2)insert into 3)删除 二.把返回值的化为变量 1.执行语句,并引用变量 2.查看结果
- 前端学习(十三):CSS盒子模型
进击のpython ***** 前端学习--CSS盒子模型 在前面的时候也说过,包括分析网页结构的时候,提到了,网页就其实就是一个一个盒子叠起来的 那现在就是有装饰的盒子,难度就变得深刻 所以说为了能 ...
- Android仿支付宝高顶部功能条伸缩动画
参考:https://blog.csdn.net/aqi00/article/details/72621176
- Kafka 入门(三)--为什么 Kafka 依赖 ZooKeeper?
一.ZooKeeper 简介 1.基本介绍 ZooKeeper 的官网是:https://zookeeper.apache.org/.在官网上是这么介绍 ZooKeeper 的:ZooKeeper 是 ...
- 一分钟玩转 Spring IoC
前言 「上一篇文章」我们对 Spring 有了初步的认识,而 Spring 全家桶中几乎所有组件都是依赖于 IoC 的. 刚开始听到 IoC,会觉得特别高大上,但其实掰开了很简单. 跟着我的脚步,一文 ...
- 记node,elementui,formidable上传图片
卡了很久甚至心态爆炸,搞了半天才能成功上传图片,结果图片上传的位置也有问题.头大 https://www.jianshu.com/p/3a61318c24d1 先是参考这个来弄好大致的部署. 然后中途 ...
- 线程_GIL最简单的例子
#解决多进程死循环 import multiprocessing def deadLoop(): while True: print("Hello") pass if __name ...
- PHP utf8_decode() 函数
定义和用法 utf8_decode() 函数把 UTF-8 字符串解码为 ISO-8859-1.高佣联盟 www.cgewang.com 该函数把通过 utf8_encode() 函数编码的 ISO- ...
- PHP addAttribute() 函数
实例 给根元素和 body 元素添加一个属性: <?php$note=<<<XML<note>高佣联盟 www.cgewang.com<to>Tove& ...
- Skill 脚本演示 ycNetToPin.il
https://www.cnblogs.com/yeungchie/ ycNetToPin.il 通过选中一个 instance ,分析与其连接且同时选中的 wire 上含有的 netName ,自动 ...