• Go组件学习:如何读取ini配置文件


    代码示例全部保存在,欢迎star:https://github.com/EnochZg/golang-examples

    安装组件

    go get gopkg.in/ini.v1
    

    使用

    先创建ini后缀的配置文件,本文以config.ini为例

    username = 平也
    

    在main函数中加入以下代码读取username配置

    package main
    
    import (
    	"fmt"
    	"gopkg.in/ini.v1"
    	"os"
    )
    
    func main() {
    	cfg, err := ini.Load("config.ini")
    	if err != nil {
    		fmt.Println("文件读取错误", err)
    		os.Exit(1)
    	}
    	fmt.Println(cfg.Section("").Key("username"))
    }
    

    运行后即可读取到username的值,上文中的Section有什么作用呢?我们在配置文件中加入以下配置

    [mysql]
    username = root
    

    这个时候配置文件中就存在两个一样的username,那么读取的时候以哪个为准呢?这就需要通过Section来区分了,在main函数中加入以下代码,通过在Section中传入参数来读取mysql中的配置

    fmt.Println(cfg.Section("mysql").Key("username"))
    

    运行可以发现,现在读取到的内容为root

    进阶

    限制值

    我们还可以对值进行限制,假如我们只允许值为张三或者李四,如果用户设置的名称不在这两个里面,那么就默认为张三,代码可以如下编写

    fmt.Println(cfg.Section("mysql").Key("username").In("张三", []string{"张三", "李四"}))
    

    运行后输出结果为“张三”

    修改配置文件

    在main行数中加入以下代码可以反设置回配置文件中

    cfg.Section("mysql").Key("username").SetValue("李四")
    err = cfg.SaveTo("config.ini")
    if err != nil {
    	fmt.Println("文件保存错误", err)
    }
    

    以上代码意为将mysql中的username改为李四,我们去查看一下config.ini,成功被改为李四

    [mysql]
    username = 李四
    
  • 相关阅读:
    vue双向数据绑定原理
    vue-router原理
    CSS选择器优化
    静态资源的渲染阻塞
    什么是Base64?Base64的原理是什么?
    OAuth的解释
    AMD与CMD的区别
    AMD的实现
    组件通信的几种方式
    关于istream_iterator<int>(cin)和istream_iterator<int>()的一点分析
  • 原文地址:https://www.cnblogs.com/pingyeaa/p/12489540.html
Copyright © 2020-2023  润新知