特定Go版本的Golang构建标签可能吗?

dea*_*arn 1 tags compilation build go

单独使用构建标记是否可以在文件中定位特定的Go版本?

// + build go1.7

例如.通过将golang.org/x/net/context添加到标准库中,我有一些代码需要更新才能使用std lib上下文(当它发布时)但是能够保持向后兼容性尚未更新.

我知道有很多方法可以控制它,包括分支名称和go get,只是想知道是否有使用构建标记的方法.

提前致谢.

Cer*_*món 5

将依赖于上下文的代码放在具有以下构建标记的文件中.此代码是为Go 1.7及更高版本编译的.

// +build go1.7
Run Code Online (Sandbox Code Playgroud)

将向后兼容性代码放在具有以下构建标记的文件中.此代码用于1.7之前的所有Go版本.

// +build !go1.7
Run Code Online (Sandbox Code Playgroud)