go1.21.0 (released 2023-08-08) から導入
https://go.dev/doc/go1.21
sync.Once
で十分便利だったけど、go1.21.0からは sync.OnceValue
というさらに便利なものが用意されている。
var config = sync.OnceValue(func() *Conf {
c := &Conf{}
if err := envconfig.Process(prefix, c); err != nil {
panic(err)
}
return c
})
if config().Env == "stg" {
}
Discussion