编辑:runtime.GOROOT()
Go 1.10 中更改的行为,有关详细信息,请参阅Go 1.10发行说明#Runtime.现在基本上runtime.GOROOT()
检查是否GOROOT
设置了环境变量,如果是,则返回其值.如果不是,则返回GOROOT
编译时记录的值.
查看runtime
包裹:
GOARCH,GOOS,GOPATH和GOROOT环境变量完成了Go环境变量集.它们影响Go程序的构建(参见https://golang.org/cmd/go和https://golang.org/pkg/go/build).GOARCH,GOOS和GOROOT在编译时记录,并由此包中的常量或函数提供,但它们不影响运行时系统的执行.
对于可能的组合列表GOARCH
,并GOOS
可以在这里找到:https://golang.org/doc/install/source#environment
所以你要找的是runtime
包中的常量:
runtime.GOOS
runtime.GOARCH
Run Code Online (Sandbox Code Playgroud)
它们将完全包含构建应用程序时存在的值.
例如,看看这个简单的应用程序
func main() {
fmt.Println(runtime.GOOS)
fmt.Println(runtime.GOARCH)
}
Run Code Online (Sandbox Code Playgroud)
比方说GOOS=windows
和GOARCH=amd64
.运行它将go run xx.go
打印:
windows
amd64
Run Code Online (Sandbox Code Playgroud)
从中构建一个exe(例如go build
).运行exe具有相同的输出.
现在GOARCH
改为386
.如果你运行它go run
(或构建一个exe并运行它),它将打印:
windows
386
Run Code Online (Sandbox Code Playgroud)
如果您运行以前构建的exe,它仍将打印:
windows
amd64
Run Code Online (Sandbox Code Playgroud)