欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-16 09:28:52
代码示例全部保存在,欢迎star:https://github.com/EnochZg/golang examples 安装组件 使用 先创建ini后缀的配置文件,本文以config.ini为例 在main函数中加入以下代码读取username配置 运行后即可读取到username的值,上文中的Se ......

代码示例全部保存在,欢迎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 = 李四