golang proto3的message中奇怪字段XXX_NoUnkeyedLiteral
Protocol Buffers中,通过syntax设置语法类型,有proto2和proto3两种语法。当使用proto3时,会自动生成奇怪的字段,如XXX_NoUnkeyedLiteral、XXX_unrecognized、XXX_sizecache等。
# 生成命令:protoc --go_out=. pf.proto
type Person struct {Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`Id int32 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"`Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"`Phones []*Person_PhoneNumber `protobuf:"bytes,4,rep,name=phones,proto3" json:"phones,omitempty"`XXX_NoUnkeyedLiteral struct{} `json:"-"`XXX_unrecognized []byte `json:"-"`XXX_sizecache int32 `json:"-"`
而生成的上述结构体在初始化的时候稍显麻烦,如果想在生成pf.pb.go文件时,不产生上述字段,可使用gogofaster
生成。
# 生成命令:protoc --gogofaster_out=. pf.proto
protoc-gen-gogofast (same as gofast, but imports gogoprotobuf)
protoc-gen-gogofaster (same as gogofast, without XXX_unrecognized,less pointer fields)
protoc-gen-gogoslick (same as gogofaster, but with generated string, gostring and equal methods)
gogofaster库的用法参考链接:https://studygolang.com/articles/19114?fr=sidebar
proto3用法参考链接:https://blog.csdn.net/weixin_33936401/article/details/88252538
Golang protobuf: https://www.jianshu.com/p/7e3dcfbc5fd7
golang proto3的message中奇怪字段XXX_NoUnkeyedLiteral相关推荐
- Golang 从 Json 串中快速取出需要的字段
Golang 从 Json 串中快速取出需要的字段 在 web 编程中很多情况下接口的数据是 json 格式,在我们拿到接口的 json 数据后如何方便地从中提取出需要的字段呢?我们可以自定义一个结构 ...
- golang中struct字段
golang中struct字段名首字母必须大写,不然json无法解析 golang中struct字段后面json字段要小写或小写加下划线 golang中首字母大写表示共有
- Golang 通过jsonTag设置Struct或者Struct数组中的字段
原文地址声明:https://blog.csdn.net/qq_23179075/article/details/118394526 package commonimport ("fmt&q ...
- 【Golang】关于Go中logrus的用法
一.标准日志库log 在日常开发中,日志是必不可少的功能.虽然有时可以用fmt库输出一些信息,但是灵活性不够.Go 标准库提供了一个日志库log. 1.快速使用 log是 Go 标准库提供的,不需要另 ...
- golang map嵌套struct 结构体字段 不能直接修改 解决方法
目录 错误信息 错误原因 解决方法 错误信息 Reports assignments directly to a struct field of a map 错误原因 结构体作为map的元素时,不能够 ...
- Message中obtain()与recycle()
Message中obtain()与recycle() 原文:链接 在obtain的所有重载方法中,第一行都是Message m = obtain();,即调用空参的方法. 先来看一下这个空参方法 pu ...
- 对话屏幕Dynpro(SE51) 屏幕元素 屏幕属性 PAI事件的触发、屏幕元素Function Code设置 屏幕流逻辑Screen Flow Logic 对话屏幕中的字段命名大小写问题
对话屏幕Dynpro(SE51) 屏幕元素 屏幕属性 l 屏幕序号(Screen number).四个数字组成的序列号,用于在程序中确定屏幕,该序号在同一个ABAP程序内部是唯一的. l 屏幕类型 ...
- ARCGIS中某字段递增赋值
ARCGIS中某字段递增赋值 在地段计算器中使用一下代码: rec=0 def autoIncrement():global recpStart = 1 pInterval = 1 if (rec = ...
- Crystal Reports中的字段
字段,是Crystal Reports呈现数据的基本单元,也是报表的数据中心. 在Crystal Reports中,字段的类型有数据库字段,公式字段,参数字段,组名字段,运行总计字段,特殊字段,未绑定 ...
最新文章
- Elasticsearch7.x 安装及集群的配置
- eclipse发布web项目到生产环境的方式汇总(tomcat)
- NOI2015 题解
- 【Groovy】闭包 Closure ( 闭包的 delegate 代理策略 | OWNER_FIRST | DELEGATE_FIRST | OWNER_ONLY | DELEGATE_ONLY )
- memset()的效率以及源码分析
- 怎样去掉警告 log4j:WARN No appenders could be found for logger
- springCloud - 第10篇 - 服务间调用追踪 (zipkin 的使用)
- 标准化工作及相关组织
- np.roll的作用
- CCNA Cisco 安全配置
- scrt远程连接工具怎么切换窗口
- PS安装失败解决方法
- 最多50名同学的学号,姓名,及三科成绩,计算每位同学的平均成绩,并找出平均分的最高分和最低分
- 【软件工程】:非功能需求
- win10禁用全角,教你恢复win10系统屏蔽全角/半角快捷键的办法
- http协议规定的数据格式
- 橘色超漂亮滑动二级导航菜单
- 编解码器的世界 - 从字幕组说起
- 基于分子模拟对植物性抑菌剂抑制耐药菌的研究
- Abb通过OPC UA 和PLC进行通讯
热门文章
- 美国独立IP主机受欢迎的原因是什么?
- 谷歌美女副总裁:只跟聪明人在一起
- FileDownloader下载文件
- fastdfs文件服务器部署
- 第一章--Spring工厂设计模式消除耦合
- Qt:出现错误 QWindowsWindow::setGeometry: Unable to set geometry 401x48+759+477 on QWidgetWindow/‘Message
- pycharm 设置字体大写和高亮字体颜色
- 汽车电子仪表模拟测试系统研制
- SDCMS1.31 如何发布?
- VScode中,Live Server打开浏览器后一直转圈加载问题