当前位置: 首页 > news >正文

go:generate 指令

gogenerate 指令

go generate 命令是在Go语言 1.4 版本里面新添加的一个命令,当运行该命令时,它将扫描与当前包相关的源代码文件,找出所有包含 //go:generate 的特殊注释,提取并执行该特殊注释后面的命令。

命令格式

go generate 命令格式如下所示:

go generate [-run regexp] [-n] [-v] [-x] [command] [build flags] [file.go... | packages]

参数说明如下:

  • -run 正则表达式匹配命令行,仅执行匹配的命令;
  • -v 输出被处理的包名和源文件名;
  • -n 显示不执行命令;
  • -x 显示并执行命令;
  • command 可以是在环境变量 PATH 中的任何命令。

注意:

  • //go:generate 注释双斜线后没有空格;
  • 每个源码文件可以包含多个 generate 特殊注释;
  • 运行 go generate 命令时,才会执行特殊注释后面的命令;
  • go generate 命令执行出错时,将终止程序的运行;
  • go generate 后可以接任意路径。比如 go generate 命令只处理当前工作目录下的包;而 go generate ./.. 则处理当前目录的父目录及其所有子目录下的包。所有 go generate 命令都会忽略 vendor 目录和 GOROOT 下的包,仅处理项目内的用户代码。

常见用途

示例:https://gitee.com/meha555/go-learn/tree/master/01_basic/tricks/generate

  1. Protocol Buffers: 从.proto文件生成Go代码
  2. Mock生成: 为接口生成mock实现
  3. 字符串方法: 为枚举类型生成String()方法
  4. 嵌入资源: 将静态资源嵌入到Go代码中
  5. 版本信息: 生成包含版本信息的代码
http://www.hskmm.com/?act=detail&tid=30442

相关文章:

  • 光栅化
  • 图形学中的变换
  • Unity URP 体积云
  • 使用DirectX绘制天空盒并实现破坏和放置方块
  • 编写DX12遇到的坑
  • 编写DX12时使用的辅助类
  • HLSL语法
  • DirectX12初始化
  • 实验2
  • CF2159B
  • 登录校验---Filter过滤器
  • 日志|Ajax
  • 环境变量 Path 配置实战指南:从“能用”到“专业”--两种配置环境变量的方法
  • 10月13日
  • Ubuntu22.04安装CH340/CH341驱动
  • 玄机蓝队靶场_应急响应_198:实战Live勒索病毒溯源排查
  • JetBrains Mono字体好看、及其它
  • STM32——UART
  • WebApi 交叉观察者- IntersectionObserver复盘
  • [KaibaMath]1009 关于||a|-|b||≤|a+b|的证明
  • AMPopTip - 优雅的iOS动画提示框库
  • 2026年深度对比值得推荐的10个在线客服系统
  • 文件名中有空格比较烦人
  • 20232421 2024-2025-1 《网络与系统攻防技术》实验一实验报告
  • 十月总结
  • 20251013 之所思 - 人生如梦
  • Markdown 基本语法
  • 简单工单系统的实现-客服系统中增加创建工单功能
  • 日总结 10
  • # 20232421 2024-2025-1 《网络与系统攻防技术》实验一实验报告