【Golang】go语言命令之go generate
go generate
命令是在Go语言 1.4 版本里面新添加的一个命令,当运行该命令时,它将扫描与当前包相关的源代码文件,找出所有包含//go:generate
的特殊注释,提取并执行该特殊注释后面的命令。
1.示例
//go:generate tools gen enum TestState
type TestState int8
tools是公司内部工具,用于生成枚举方法与其他数据库访问方法等等。
2.使用
2.1 手动执行
对于上述tools工具,可以cd到具体目录下,手动执行:
cd constants/types
tools gen enum TestState
2.2 命令行执行
go generate
登场
cd constants/types
go generate
2021/08/01 18:37:00 costs 3085 ms
2021/08/01 18:37:07 costs 6112 ms
2021/08/01 18:37:11 costs 4267 ms
2021/08/01 18:37:15 costs 3867 ms
2021/08/01 18:37:19 costs 3314 ms
2021/08/01 18:37:22 costs 3163 ms
2021/08/01 18:37:27 costs 4567 ms
2021/08/01 18:37:31 costs 4072 ms
2021/08/01 18:37:34 costs 3285 ms
2021/08/01 18:37:38 costs 3578 ms
这样根本看不出到底执行到哪个命令了
go generate -x
命令中使用的-x
参数会将执行的具体命令同时打印出来。
2.3 vscode中执行
没有用过goland
,一直使用的是vscode
进行开发。博主发现vscode
会自动发现//go:generate
注释,然后生成 一键执行:
便会自动执行上一小节的命令,在vscode
下面输出tab中持续输出具体的执行命令与结果。
- 原文作者:Garfield
- 原文链接:http://www.randyfield.cn/post/2021-08-01-go-generate/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。