golang是否支持
#define DEBUG
#ifdef DEBUG
fmt.Println("Debug message...");
#endif
所以我可以构建一个零运行时开销的调试版本吗?
答案 0 :(得分:3)
如果您在 linux 或 Mac 上工作,则可以尝试“ m4 ”命令。该命令是宏< / strong>处理器正好适合这个问题。
在“进行构建”之前编写Makefile来运行m4命令可以与使用“进行构建-tags ...”相同,并且支持更多的自定义操作,并且当然可以保存您的工作。
例如:
在您的go文件(例如main.go)中写入这些文件:
define(DEBUG)
ifdef(`DEBUG',
fmt.Println("Debug message...");
)
将这些内容写入您的Makefile文件中:
all:*.go
mv main.go main.go.bak
m4 main.go.bak > main.go
go build
mv main.go.bak main.go
然后运行“ make”。
缺点: