go-ini配置文件操作
go-ini是golang ini文件操作库,也兼容其他格式,包括但不限于 my.cnf、.gitconfig
使用三方库 "gopkg.in/ini.v1"
ini文件格式语法#
; 注释使用分号
; ini文件语法
env = test
; [] 分区符
[mysql]
Host = 127.0.0.1
Port = 3306
User = root
Password = 123456
Database = gin
获取ini数据#
import (
"fmt"
"gopkg.in/ini.v1"
)
func main() {
// 加载指定路径的文件,返回文件对象和err
cfg, err := ini.Load("./conf/app.ini")
if err != nil {
fmt.Println("加载失败")
}
// Section传入分区名字,如果没有分区就传入空字符串,表示从根获取
// 获取根下的 env字段,默认类型是*ini.Key
cfg.Section("").Key("env") // test
// 获取根下的 env字段,并将获取到的结果转换为字符串
cfg.Section("").Key("env").String()
// 获取mysql分区的host字段,以string的类型
cfg.Section("mysql").Key("host").String()
}
写入/修改ini文件数据#
cfg, _ := ini.Load("./conf/app.ini")
// 给根分区 写入 version = v1
cfg.Section("").Key("version").SetValue("v1")
// 修改mysql分区的host
cfg.Section("mysql").Key("host").SetValue("0.0.0.0")
// 保存
cfg.SaveTo("./conf/app.ini")
将ini数据映射到结构体#
import (
"fmt"
"gopkg.in/ini.v1"
)
type Mysql struct {
// 结构体字段开头必现大写,并且ini的字段也需要是大写
Host string
Port int
User string
Password string
Database string
}
func main() {
var mysqlConf = new(Mysql)
cfg, _ := ini.Load("./conf/app.ini")
err := cfg.Section("mysql").MapTo(mysqlConf)
fmt.Println(err)
fmt.Print(mysqlConf.Host)
}
风月都好看,人间也浪漫.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!