envconfigを使いたく、下記の公式READMEを参照して実行してみたのですが結果がREADMEと異なっており困っております。
https://github.com/kelseyhightower/envconfig#usage
以下、詳細を記述します。
ソースコード
.env
env
1export MYAPP_DEBUG=false 2export MYAPP_PORT=8080 3export MYAPP_USER=Kelsey 4export MYAPP_RATE="0.5" 5export MYAPP_TIMEOUT="3m" 6export MYAPP_USERS="rob,ken,robert" 7export MYAPP_COLORCODES="red:1,green:2,blue:3"
main.go
go
1package main 2 3import ( 4 "fmt" 5 "log" 6 "time" 7 8 "github.com/kelseyhightower/envconfig" 9) 10 11type Specification struct { 12 Debug bool 13 Port int 14 User string 15 Users []string 16 Rate float32 17 Timeout time.Duration 18 ColorCodes map[string]int 19} 20 21func main() { 22 var s Specification 23 err := envconfig.Process("myapp", &s) 24 if err != nil { 25 log.Fatal(err.Error()) 26 } 27 format := "Debug: %v\nPort: %d\nUser: %s\nRate: %f\nTimeout: %s\n" 28 _, err = fmt.Printf(format, s.Debug, s.Port, s.User, s.Rate, s.Timeout) 29 if err != nil { 30 log.Fatal(err.Error()) 31 } 32 33 fmt.Println("Users:") 34 for _, u := range s.Users { 35 fmt.Printf(" %s\n", u) 36 } 37 38 fmt.Println("Color codes:") 39 for k, v := range s.ColorCodes { 40 fmt.Printf(" %s: %d\n", k, v) 41 } 42}
実行コマンド
bash
1$ go get "github.com/kelseyhightower/envconfig" 2$ go run main.go
実行結果
bash
1Debug: false 2Port: 0 3User: 4Rate: 0.000000 5Timeout: 0s 6Users: 7Color codes:
期待される結果
bash
1Debug: false 2Port: 8080 3User: Kelsey 4Rate: 0.500000 5Timeout: 3m0s 6Users: 7 rob 8 ken 9 robert 10Color codes: 11 red: 1 12 green: 2 13 blue: 3
どのようにすれば改善できるでしょうか・・・?
初歩的な質問となりますが、よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/28 15:34
2020/04/28 15:51
2020/04/30 05:14