Go条件编译
参考自 Golang 编译约束/条件编译 ( // +build
对程序进行编译时,可能带一些条件(如不同平台、架构有不同的代码实现;或者debug,prod环境),让编译器只对满足条件的代码进行编译,将不满足条件的代码舍弃,这就是条件编译。 Go中,特称之为编译约束
进行编译约束的方式有2种分别:
- 编译标签(build tag)
- 文件后缀
编译标签(build tag)
下面演示一下 自定义标签:
1 | ├── go.mod |
main.go:1
2
3
4
5
6
7
8
9
10package main
import (
"fmt"
)
func main() {
fmt.Println(GetType())
}
t_dev.go:
1 | //go:build dev |
t_prod.go:
1 | //go:build prod |
Golang的条件编译参数-tags解决项目的debug模式
在很多开源项目中都有广泛使用,例如go-zero:
//go:build
和// +build
指令之间有什么区别?
文件后缀
相关博客:
原文作者: fliter
原文链接:
https://dashen.tech/2022/11/20/Go条件编译/版权声明: 转载请注明出处