一尘不染

如何从代码中获取当前的GOPATH

go

如何GOPATH从代码块中获取电流?

runtime仅具有GOROOT

// GOROOT returns the root of the Go tree.
// It uses the GOROOT environment variable, if set,
// or else the root used during the Go build.
func GOROOT() string {
    s := gogetenv("GOROOT")
    if s != "" {
        return s
    }
    return defaultGoroot
}

我可以用GOROOT代替一个函数GOPATH,但是有内置功能吗?


阅读 235

收藏
2020-07-02

共1个答案

一尘不染

使用os.Getenv

从文档:

Getenv检索由键命名的环境变量的值。它返回值,如果不存在该变量,则该值为空。

例:

package main

import (
    "fmt"
    "os"
    )

func main() {
    fmt.Println(os.Getenv("GOPATH"))
}

Go 1.8+更新

Go 1.8具有通过go / build导出的默认GOPATH:

package main

import (
    "fmt"
    "go/build"
    "os"
)

func main() {
    gopath := os.Getenv("GOPATH")
    if gopath == "" {
        gopath = build.Default.GOPATH
    }
    fmt.Println(gopath)
}
2020-07-02