首页 > 其他分享 >protobuf 中go_package的意思

protobuf 中go_package的意思

时间:2023-06-03 23:25:16浏览次数:47  
标签:protobuf package api option go out

一个简单的 protobuf 文件定义如下:

response.proto

syntax = "proto3";

option go_package = "github.com/TripleCGame/apis/api;api";
import "google/protobuf/struct.proto";

message Response {
  int32 code = 1;
  google.protobuf.Struct data = 2;
  string msg = 3; 
}

syntax = “proto3”;—指定使用 proto3 语法

option go_package = "github.com/TripleCGame/apis/api;api";—前一个参数用于指定生成文件的位置,后一个参数指定生成的 .go 文件的 package 。具体语法如下:

option go_package = "{out_path};out_go_package";

注意:这里指定的 out_path 并不是绝对路径,只是相对路径或者说只是路径的一部分,和 protoc 的 --go_out 拼接后才是完整的路径。

生成的pb.go文件:

go_package的定义也体现在import 该proto的文件的地方:

 这里刚好import的时候制定路径

标签:protobuf,package,api,option,go,out
From: https://www.cnblogs.com/zhanchenjin/p/17454939.html

相关文章

  • Godot的几个附加脚本和进行继承时比较特别的特性
    注:这是在Godot4.0中总结出的内容,并且语言是C#。特别的,下面有的特性和C#关系比较大。基本特性在Godot中,为某个节点编写特别的代码时,需要为节点新建脚本,或引用已有脚本。引用脚本时,填入脚本路径即可,相当于是复用代码了。新建脚本时,一般做法是新建一个自定义类型,并且......
  • 使用Django创建一个项目
    ......
  • pongo2 类似django 语法的golang 模版引擎
    pongo2类似django语法的golang模版引擎,当前兼容django1.7同时还包含了强大的三方生态支持(比如beego,gin,echo框架。。。)参考使用main.gopackagemainimport("fmt""log""github.com/flosch/pongo2/v6")funcmain(){tpl,err:=pongo2.FromFile("message.tpl"......
  • Google Earth Engine(GEE)——ndvi.gt is not a function
    你好,我试图通过屏蔽值的上下10个百分位数来消除计算出的NDVI数据集中的异常值,但我在第398行中不断收到错误消息,显示第398行:ndvi.gt不是函数。 我怎样才能解决这个问题? 原始代码:vartable=ee.FeatureCollection("users/selenachav5/mangrove_vector"),Upper=......
  • CSSYZ Algorithm Round #2
    [ABC192F]Potion分析设选择的总和为\(sum\)。不难发现:\(x\%k=sum\%k\)。又因为:\(ans=(x-sum)/k\)。不难发现\(sum\)只与\(\%k\)有关,且当\(k\)一定时,\(sum\)越大,\(ans\)越小。因为\(k\)的值域很小,显然可以对于每一个\(k\),用01背包求解出\(\%k\)意义下的最大\(sum\)。计......
  • Go语言如何判断两个对象是否相等
    1.引言在编程中,判断两个对象是否相等是一项常见的任务,同时判断对象是否相等在很多情况下都非常重要,例如:单元测试:编写单元测试时,经常需要验证函数的输出是否符合预期,这涉及到比较对象是否相等。数据结构操作:在使用map等数据结构时,可能需要判断两个对象是否相等以进行元素查找......
  • golang深入理解指针
    Golang中的指针指针的概念:指针地址,指针类型,指针取值两个符号:*:根据地址取值,&:取地址关于指针变量是用来存储数据的,变量的本质是给存储数据的内存地址起了一个好记的别名。a:=1//直接通过a这个变量来读取内存中保存的1这个值。在计算机底层a这个变量其实对应了一个内存地址。......
  • golang 学习之 etcd protobuffer grpc gorm 服务注册发现 go-micro
    1.etcd使用步骤1)下载:https://github.com/etcd-io/etcd/releases/2)配置环境变量3)编辑local-cluster-profile文件:(利用goreman启动方式,生产环境参考官方文档)etcd1:etcd--nameinfra1--listen-client-urlshttp://127.0.0.1:2379--advertise-client-urlshttp://127.0.0.1......
  • Golang标准库之bytes介绍
    本次主要介绍golang中的标准库bytes,基本上参考了字节|bytes、Golang标准库——bytes文章。bytes库主要包含5大部分,即:常量变量函数BufferReader我们依次学习上面的5大部分。1、常量constMinRead=512bytes.MinRead是一个常量,表示在使用ReadFrom方法从i......
  • golang的打点定时器
    定时器方式1:使用time.NewTicker(时间间隔)来设置定时器//定时器,定义一个1秒间隔的定时器ticker:=time.NewTicker(time.Second)n:=0fori:=rangeticker.C{fmt.Println(i)n++ifn>5{//终止定时器ticker.Stop()return......