go语言小技巧--编译约束
Contents
简介
我们能在go代码中添加一段注释,用来表示一种编译约束
|  |  | 
通过这个并且配合go build -tags="..."的方式,就能实现带有约束的编译。
举个例子:
我们编写一下代码:主程序申明如下
|  |  | 
同时,我们会编写另外两个用于初始化的代码,分别为dev和test
|  |  | 
|  |  | 
我们可以看到,在两个同一包下,我们定义了两个不同的初始化功能,分别为configArr添加相应的内容。
当我们采用不同方式编译代码时,会看到如下情况:

能够看到编译时携带的tag不同,结果也就不同。
我们可以很直观的想到可以通过这种方法,实现不同模式下的编译
环境设置
当然我们也可以通过添加//go:build linux的方式对本段代码进行编译环境的限制。
例如我们对上述代码的go:build注释进行修改,可以看到如下效果:
|  |  | 
|  |  | 
这时,我们直接进行代码编译,能够看到如下效果:

可以看到,我们只将test部分的代码编译,而dev的代码并没有编译
格式
举个例子:// go:build linux && amd64 && !cgo || darwin,通过这个我们就能发现,可以通过逻辑运算符来表明编译约束。
