在阅读uber-go相关开源代码时,发现代码中出现了一段奇怪的注释:
//go:build go1.18
// +build go1.18
了解得知代码中的注释除了解释补充代码内容的功能外,还有许多其他用法,比如示例中的用法,分别为:
【//go:build】 二进制编译
二进制编译表示代码中直接引用二进制包,通常用于一些敏感核心服务的发布。
【// +build】 条件编译
条件编译顾名思义就是设定编译的条件,比如以下代码表示linux OR darwin
// +build linux darwin
具体条件写法可参考:Go 编程: 交叉编译 vs 条件编译