我正在尝试在程序中使用该envconfig库https://github.com/kelseyhightower/envconfig,其中大多数配置变量都有默认值,我只想在设置了特定环境变量时覆盖这些默认值。
我尝试运行以下示例程序:
package main
import (
"fmt"
"log"
"github.com/kelseyhightower/envconfig"
)
type config struct {
foo string `default:"bar"`
}
func main() {
var cfg config
if err := envconfig.Process("app", &cfg); err != nil {
log.Fatalln(err)
}
fmt.Println(cfg.foo)
}
没有APP_FOO设置环境变量:
> echo $APP_FOO
然而,这并没有bar像我期望的那样打印:
> go run use_envconfig.go
我不明白我的实现与https://github.com/kelseyhightower/envconfig#struct-tag-support中记录的示例有何不同,以下评论属于该示例:
如果 envconfig 找不到 的环境变量值MYAPP_DEFAULTVAR,它将使用“foobar”作为默认值填充它。
除非我设置环境变量,否则如何使该程序cfg的 值为?foobarAPP_FOO
缥缈止盈
吃鸡游戏
相关分类