当前位置: 首页 > 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.zskr.cn/news/20558.html

相关文章:

  • Unity URP 体积云
  • 编写DX12时使用的辅助类
  • HLSL语法
  • 登录校验---Filter过滤器
  • 日志|Ajax
  • JetBrains Mono字体好看、及其它
  • 2026年深度对比值得推荐的10个在线客服系统
  • 20251013 之所思 - 人生如梦
  • Markdown 基本语法
  • 20232421 2024-2025-1 《网络与系统攻防技术》实验一实验报告
  • 20232317 2025-2026-1《网络与系统攻防技术》实验一实验报告
  • 实用指南:【每日一面】React Hooks闭包陷阱
  • Java 面试 - krt
  • 给一个字符串数组,输出不同的部分
  • Java按顺序提取Word内容(文本+数学公式) - 指南
  • 实用指南:嵌入式学习笔记3.基于寄存器方式控制GPIO
  • muduo网络库事件驱动模型的实现与架构 - 详解
  • PHP转Go系列 | 如何将 PHP 项目快速迁移到 Go 上?
  • AI元人文:对大模型的召唤——未来哪吒
  • tcp/ip五层协议模型--思维拓扑图 - krt
  • springboot模式与应用案例--思维拓扑图 - krt
  • AlexNet vs LeNet 对比实验
  • 20232422 2025-2026-1 《网络与系统攻防技术》实验一实验报告
  • 详细介绍:redis特性和应用场景
  • newDay09
  • 日志|前端框架Vue
  • oop.shiyan1
  • P3330 [ZJOI2011] 看电影
  • 20232315 2025-2026-1 《网络与系统攻防技术》实验一实验报告
  • Linux使用笔记