为了账号安全,请及时绑定邮箱和手机立即绑定

goconfig使用解析

标签:
Go


参考:https://github.com/Unknwon/go-rock-libraries-showcases/tree/master/lectures/01-goconfig

goconfig 简介

goconfig 是一个由 Go 语言开发的针对 Windows 下常见的 INI 格式的 配置文件解析器。该解析器在涵盖了所有 INI 文件操作的基础上,又针对Go 语言实际开发过程中遇到的一些需求进行了扩展。相对于其它 INI 文件解析器而言,该解析器最大的优势在于 对注释的极佳 支持;除此之外,支持 多个配置文件覆盖加载 也是非常特别但好用的功能。

主要特性

提供与WindowsAPI一模一样的操作方式 - 支持递归读取分区

支持自增键名

支持对注释的读与写操作

支持直接返回指定类型的键值 - 支持多个文件覆盖加载

下载安装

通过gopm安装:

gopm get github.com/Unknwon/goconfig

通过goget安装:

go get github.com/Unknwon/goconfig

API文档:GoWalker

基本使用方法

加载配置文件:

cfg, err := goconfig.LoadConfigFile("conf.ini")

基本读写操作:

value, err := cfg.GetValue(goconfig.DEFAULT_SECTION,"key_default")

isInsert := cfg.SetValue(goconfig.DEFAULT_SECTION,"key_default", "这是新的值”)

注释读写操作:

comment := cfg.GetSectionComments("super")

comment = cfg.GetKeyComments("super", "key_super")

v := cfg.SetKeyComments("super", "key_super", "# 这是新的键注释") v = cfg.SetSectionComments("super", "# 这是新的分区注释")

类型转换读取:

vInt, err := cfg.Int("must", "int")

Must系列方法:

vBool := cfg.MustBool("must", "bool")

删除指定键值:

ok := cfg.DeleteKey("must", "string")

保存配置文件:

err = goconfig.SaveConfigFile(cfg, "conf_save.ini")

高级使用方法

高级使用方法

多文件覆盖加载:

cfg, err := goconfig.LoadConfigFile("conf.ini", "conf2.ini") err = cfg.AppendFiles("conf3.ini")

配置文件重载:

err = cfg.Reload()

为Must系列方法设置缺省值:

vBool := cfg.MustBool("must", "bool404", true)

递归读取键值

子孙分区覆盖读取 - 自增键名获取

获取整个分区:

高级使用方法

sec, err := cfg.GetSection("auto increment")

总结

goconfig 包的 API 提供非常全面,用法非常简单,但核心代码并不多,各位 同学有兴趣的可以阅读其源代码。

使用案例:

gopm、beego - i18n、beeweb、wetalk、gowalker

©著作权归作者所有:来自51CTO博客作者1350368559的原创作品,如需转载,请注明出处,否则将追究法律责任


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消