首页 > 解决方案 > “去生成”多行命令

问题描述

我试图//go:generate在编译我的代码之前使用运行外部工具,并且由于我需要传递一定数量的参数,所以该行变得相当长。

好像没有办法写多行go:generate命令,对吗?有替代方法吗?

谢谢

标签: gocode-generation

解决方案


没有办法将 go generate 命令拆分为几行,但有一些提示。

如果您需要运行多个短命令,您可以像下面这样一个一个地编写它们。

//go:generate echo command A
//go:generate echo command B
//go:generate ls

您还应该知道没有 bash 脚本,而是原始命令。因此,以下工作并不像人们预期的那样。

//go:generate echo something | tr a-z A-Z > into_file
// result in "something | tr a-z A-Z > into_file"

对于长或复杂的命令,您应该使用从 go:generate 注释调用的单独脚本(或者可能是 go 程序)。

//go:generate sh generate.sh
//go:generate go run generator.go arg-A arg-B

在 generator.go 中你应该使用 build 标签来防止它与其他文件正常编译。

// +build ignore

package main
// ...

学习 Go 的最佳地点是 Go 资源:https ://github.com/golang/go/blob/master/src/runtime/runtime.go#L13


推荐阅读