GitHub - go-ini/ini: Package ini provides INI file read and write functionality in Go.を使って、iniファイルの読み込みを行います。
下記iniファイルが同階層にある場合の例です。
config.ini
[web] port = 8080 [db] name = stock.sql driver = sqlite3
main.go
package main import ( "fmt" "github.com/go-ini/ini" ) type ConfigList struct { Port int Name string SQLDriver string } var Config ConfigList func init() { cfg, _ := ini.Load("config.ini") // iniファイルを読み込む Config = ConfigList{ // structの中身に代入 Port: cfg.Section("web").Key("port").MustInt(), // MustIntのカッコ内が空の場合、iniファイルに対象の情報がなければ0が入る Name: cfg.Section("db").Key("name").MustString("xxx.sql"), // iniファイルに対象の情報がなければ、MustStringのカッコ内の値が入る SQLDriver: cfg.Section("db").Key("driver").String(), // Mustがない場合、iniファイルに対象の情報がなければ、空になる } } func main() { fmt.Println(Config.Port, Config.Name, Config.SQLDriver) }
中身に代入する際の、ini.Load("").Section("").Key("")以下は、
デフォルト値を設定する必要があるかなど、要件に応じて決めます。