go generate命令简介
1.iota简介
2.go generate命令简介
3.golang uuid库介绍4.gRPC基本教程5.protolator简介6.Govulncheck v1.0.0 发布了!7.每日一库:GORM简介8.Go泛型简介9.Go 1.21发布!10.Golang zip压缩文件读写操作11.本地搭建playground12.zap自定义日志级别13.Gorm日志设置14.gin启动https支持15.Go Plugin介绍16.Golang漏洞管理17.可以丢掉123456了18.如何优雅地退出程序19.PGO前瞻20.go多版本管理21.openAI发布v0.2.0了22.Gin中间件开发23.Fabric区块链浏览器(1)24.每日一库:Memcache25.protojson简介26.每日一库:gosec27.Fabric区块链浏览器(2)28.每日一库:fsnotify简介29.gRPC with JWT30.embed简介31.Fabric区块链浏览器(3)32.每日一库:pprof简介33.go 1.21:cmp34.完全可复制、经过验证的 Go 工具链35.PGO in Go 1.2136.Fabric 2.x 智能合约开发记录37.为不断增长的Go生态系统扩展gopls38.每日一库:lumberjack -- 日志轮换和管理39.2023-04-26-微信安全模式下消息解析40.WASI support in Go41.每日一库:Prometheus42.如何实现流量控制和熔断降级?43.消息队列 - RabbitMQ44.Go 1.22 中的 For 循环45.设计模式之单例模式46.每日一库:使用Viper处理Go应用程序的配置47.使用 gopkg.in/yaml.v3 解析 YAML 数据48.在Go中如何实现并发49.解析类型参数50.设计模式之工厂模式51.每日一库:cobra 简介52.slices in Go 1.2153.go defer简介54.slice简介55.Golang Map底层实现简述56.Go 如何实现多态57.查找数组中第K大的元素58.go中的内存逃逸59.数组 vs. 切片60.队列(Queue):先进先出(FIFO)的数据结构61.go 中如何实现定时任务62.go 中的循环依赖63.Go中字符串处理:fmt.Sprintf与string.Builder的比较64.理解Go中的零值65.go 上下文:context.Context66.go中异常处理流程67.Go实现网络代理68.Why gRPC ?69.Go:条件控制语句70.Go 获取 IP 地址71.Golang并发控制方式有几种?72.Golang面试:泛型73.LRU算法简介74.MRU算法实现75.ARC算法实现76.Go语言中的交互式CLI开发:survey库简介77.C如何调用Go最近在研究kratos的使用,发现在kratos run
之前会先运行go generate ./...
命令。
这个命令之前没怎么用过,所以决定学习下该命令的用法。
go generate
是Go语言中的一个命令,用于在Go源代码中执行自定义的命令或脚本,以生成代码或执行其他必要的构建任务。
生成代码的步骤
下面是使用go generate
命令生成代码的一般步骤:
- 在Go源代码文件中,使用特定的注释标记来指示需要执行的命令或脚本。通常,这些注释标记以
//go:generate
开头,后跟要执行的命令。
//go:generate command arguments
- 运行
go generate
命令。在终端或命令行界面中,导航到包含需要生成代码的Go源文件的目录,并运行go generate
命令。
go generate
-
go generate
将扫描当前目录和子目录中的所有Go源文件,并查找以//go:generate
开头的注释。找到注释后,它将执行指定的命令或脚本。 -
执行生成代码的命令或脚本。生成代码的具体过程由你定义的命令或脚本决定。可以使用任何合法的Shell命令、脚本语言或其他可执行程序。
示例
下面是一个简单的示例,展示了使用go generate
生成代码的过程:
- 在Go源文件中,添加一个带有
//go:generate
注释的命令。
//go:generate go run codegen.go
- 创建一个名为
codegen.go
的文件,其中包含实际的代码生成逻辑。
package main import ( "fmt" "os" ) func main() { // 在此处编写生成代码的逻辑 fmt.Println("Running code generation...") // ... }
- 运行
go generate
命令。
go generate
go generate
将执行codegen.go
中的代码,生成所需的代码或执行其他必要的构建任务。
代码生成工具
go generate
常用于代码生成工具的构建过程。通过在Go源代码中添加//go:generate
注释,并定义相应的命令或脚本,可以方便地生成重复性、模板化或基于元数据的代码。
许多开源库和工具,如ORM库(例如GORM)、协议缓冲区(Protocol Buffers)和模板引擎,都使用go generate
来自动生成相关的代码。
注意事项
go generate
只会扫描和处理包含//go:generate
注释的Go源文件。其他文件或注释将被忽略。go generate
命令需要在你的$GOPATH
或项目的根目录中执行,以确保正确的包和依赖路径。- 生成代码的命令或脚本应该是可执行的,并且可以在当前环境中找到。
更多细节可以通过go help generate
查看。

声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
Author: mengbin
blog: mengbin
Github: mengbin92
cnblogs: 恋水无意
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
2020-07-11 基于go-restful实现的PoW算力池模型