この実装、よくミスる。
// You can edit this code!
// Click here and start typing.
package main
import (
"fmt"
"github.com/caarlos0/env/v6"
)
type Example struct {
Value string `env:"HOGE" envDefault:"HUGA"`
}
func main() {
e := Example{
Value: "YEAAAAAAAAAAAAAAAA",
}
env.Parse(&e)
fmt.Printf("%v", e)
}
コンコードを実装するとこうなる。
{HUGA}
ExampleのValue には文字列 YEAAAAAAAAAAAAAAAA がすでに入っているのだから、感覚的には YEAAAAAAAAAAAAAAAA のままであってほしいのだが、そうはならない。これを意図通りにやろうと思うと、env.Parse のあとで必要に応じて上書きするか、envDefault を使わずに、自分で if 書いて、デフォルト値入れるしかなさそう。
