Golang 读取和映射ini配置文件到结构体
这里使用go-ini 工具提供的 MapTo 的方式来映射结构体。
官方文档:https://pkg.go.dev/gopkg.in/ini.v1
【配置文件】
port = 9000 release = false [mysql] user = root password = 123456 host = 127.0.0.1 port = 3306 db = go
【安装模块】
go get gopkg.in/ini.v1
【功能代码】
import ( "fmt" "gopkg.in/ini.v1" ) // AppConfig 应用程序配置 type AppConfig struct { Port int `ini:"port"` Release bool `ini:"release"` MySQLConfig `ini:"mysql"` } // MySQLConfig 数据库配置 type MySQLConfig struct { User string `ini:"user"` Password string `ini:"password"` DB string `ini:"db"` Host string `ini:"host"` Port int `ini:"port"` } func main() { //加载配置文件 config, err := ini.Load("config.ini") if err != nil { fmt.Printf("加载配置文件失败 %v", err) return } //读取并映射到结构体中 var appConfig = new(AppConfig) err = config.MapTo(appConfig) if err != nil { fmt.Printf("映射配置信息失败 %v", err) return } fmt.Printf("%+v", appConfig) }