//go:build xxx 和 // +build xxx 在 golang 中是什么意思?

what does //go:build xxx and // +build xxx means in golang?

我总是看到代码,

//go:build linux
// +build linux

什么意思?没看懂。

举几个例子

这些是构建约束,请参阅 https://pkg.go.dev/go/build#hdr-Build_Constraints

在旧版本的 Go 中,你会说

// +build linux

Go 1.17 及更高版本的新语法是

//go:build linux

但他们做同样的事情:仅在 Linux 构建中包含此文件。