从环境中获取变量?

Get variables from the environment in go?

我在环境变量 GOPATH 中设置了数据,我想在我的程序中以编程方式提取这些数据。我更愿意将所有 ENV 变量作为 map[string]interface{} 获取。这是因为我想将 ENV 值与我的 JSON 配置集成 我目前是这样获取的。

 var data map[string]interface{}

 file, err := ioutil.ReadFile(configFilePath)
 if err != nil {
   log.Fatal(err)
 }
 err = json.Unmarshal(file, &data)
 if err != nil {
   log.Fatal(err)
 }

os.Environ() returns 以 "key=value" 形式表示环境的字符串。要创建地图,请遍历字符串,拆分“=”并设置地图条目。

m := make(map[string]string)
for _, e := range os.Environ() {
    if i := strings.Index(e, "="); i >= 0 {
        m[e[:i]] = e[i+1:]
    }
}