Go 使用 protobuf

一.环境准备#

安装 protoc ,protoc 是用来执行根据 proto 文件生成 代码的工具。

访问 https://github.com/protocolbuffers/protobuf/releases 选择对应的系统进行下载。

image-20220310173032102

为了方便使用,建议将 protoc 加到 PATH 中,mac 可以放到 /usr/local/bin/ 下。

安装 proto-gen go , 执行命令

go install github.com/golang/protobuf/protoc-gen-go@lates

安装完成后检查是否安装成功

ls $GOPATH/bin|grep protoc-gen-go

二.编写代码#

编写 proto 文件

syntax = "proto3";
option go_package = "/pb";

message Person {
    string name = 1;
}

生成 pb.go

protoc --go_out=. *.proto

生成 grpc 使用命令:protoc --go_out=plugins=grpc:. *.proto

安装依赖

go get github.com/golang/protobuf

序列化和反序列化 main.go

package main

import (
	"fmt"
	"github.com/golang/protobuf/proto"
	"go-protobuf/pb"
	"log"
)

func main() {
	p := &pb.Person{
		Name: "lzq",
	}

	data, err := proto.Marshal(p)
	if err != nil {
		log.Fatal(err)
	}

	fmt.Printf("matshal data len: %d\n", len(data))

	np := &pb.Person{}
	if err = proto.Unmarshal(data, np); err != nil {
		log.Fatal(err)
	}

	fmt.Printf("unmatshal person name: %s\n", np.Name)

}

输出

image-20220310175454721

作者:晓晨Master(李志强)

出处:https://www.cnblogs.com/stulzq/p/15990647.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   晓晨Master  阅读(1290)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示