Golang读取INI配置文件到结构体

本文将介绍Golang使用github.com/go-ini/ini包读取ini配置文件到结构体的方法。

测试文件内容如下:

[DATABASE]
TYPE = mysql
HOST = 127.0.0.1:3306
USER = root
PASSWORD = mypassword
DB_NAME = test

将数据保存为 test.ini ;放到go代码同一目录下。

实现如下:

package main
 
import (
    "fmt"
    "github.com/go-ini/ini"
)
 
type Database struct {
    TYPE     string
    USER     string
    PASSWORD string
    HOST     string
    DB_NAME  string
}
 
var DB_CONF = &Database{}
 
func main() {
    
    db_conf := Database{}

    conf,err := ini.Load("test.ini")
    if err!=nil{
        fmt.Println(err.Error())
        return;
    }

    if err:= conf.Section("DATABASE").MapTo(&db_conf);err!=nil{
        fmt.Println(err.Error())
        return 
    }

    fmt.Println(db_conf.HOST)

}

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/1437.html

分类: 计算机技术
推荐阅读:
Golang一次性读取文件 从磁盘读取文件内容是I/O编程的基础;几乎所有编程语言实现起来都很简单,Golang也不例外:
解决rust-analyzer在rustlings中不生效的问题 rustlings是一个让你习惯阅读和编写Rust代码的项目,其中包含一些小练习;当使用VSCode打开该项目并编写练习时,rust-analyzer插件可能没有生效;
Python获取系统CPU核心数量 在Python语言中,你可以通过os.cpu_count()获取CPU的核心数量,代码如下:
为什么有大量阿里云IP访问网站? 为什么有大量阿里云IP访问网站?其原因可能有两个,一是网站被攻击,二是你使用了阿里云CDN、负载均衡等产品;
Rust解析YAML,结构体序列化和反序列化 serde_yaml 是 Rust 的一个 crate,提供了支持将数据结构序列化为 YAML 格式,以及将 YAML 格式反序列化为 Rust 数据结构的功能。
C语言交换两个变量 在C语言中交换两个变量,需要创建一个临时变量来存储其中的一个值;例如交换a,b两个值时,需创建一个临时变量保存a的值,再将b值赋予a,最后将临时变量的值赋予b,完成交换过程;