简介


ini 是 Windows 上常用的配置文件格式。MySQL 的 Windows 版就是使用 ini 格式存储配置的。go-ini是 Go 语言中用于操作 ini 文件的第三方库。


go-ini


快速使用


go-ini 是第三方库,使用前需要安装:



也可以使用 GitHub 上的仓库:



my.ini



使用 go-ini 库读取:



=#[name]my.iniapp_namelog_level


go-ini


ini.Loadcfg


Sectionsection""ini.DefaultSection


Keykey


keyStringMustInt



运行以下程序,得到输出:



String()Int/Uint/Float64Int()/Uint()/Float64()


要留意这种不一致!如果我们将配置中 redis 端口改成非法的数字 x6381,那么运行程序将报错:




Must*


go-iniMustTypeInit/Uint/Float64



配置文件还是 redis 端口为非数字 x6381 时的状态,运行程序:



IntMustIntIntMustInt




分区操作



获取信息


SectionsSectionStrings()



运行输出 3 个分区:



Section(name)name



SectionStrings



也可以手动创建一个新分区,如果分区已存在,则返回错误:




父子分区


%(name)snames



IMPORT_PATHNAMEVERSIONpackageCLONE_URLIMPORT_PATH


.package.subpackagepackage



运行程序输出:



package.subCLONE_URLpackage


保存配置


io.Writer



my.ini



my.inimy-pretty.ini


my.ini



my-pretty.ini



*Indent


分区与结构体字段映射


MapTo



MapToencoding/jsonencoding/xmljson/xmlapp_nameAppNamego-ini


ini.MapTo



也可以只映射一个分区:



还可以通过结构体生成配置:




总结


go-inigo-ini


参考








欢迎关注我的微信公众号【GoUpUp】,共同学习,一起进步~