
go-ini入门教程
发布日期:2021-05-14 17:19:33
浏览次数:19
分类:精选文章
本文共 2205 字,大约阅读时间需要 7 分钟。
go-ini 入门教程
go-ini 简介
go-ini 是一个 Go 语言库,用于读写 INI 文件。本文将介绍如何使用该库进行 INI 文件的操作。
安装
首先需要安装 go-ini 库。你可以选择特定的版本或最新版本:
特定版本:
go get gopkg.in/ini.v1
最新版本:
go get github.com/go-ini/ini
如需更新,可以在 go get
命令中添加 -u
选项。
快速使用
1. 创建配置文件
创建一个 INI 文件。例如:
mkdir -p /home/ini-samplecd /home/ini-sampletouch my.ini main.go
2. 编写配置文件
在 my.ini
文件中添加内容:
# debug or releaseRUN_MODE = debug[app]PAGE_SIZE = 10[server]HTTP_PORT = 8000READ_TIMEOUT = 60WRITE_TIMEOUT = 60[database]TYPE = mysqlUSER = 数据库账号PASSWORD = 数据库密码#127.0.0.1:3306HOST = 数据库IP:数据库端口号NAME = blogTABLE_PREFIX = blog_
3. 编写主程序
在 main.go
文件中使用 go-ini 库读取和修改配置文件:
package mainimport ( "fmt" "os" "gopkg.in/ini/v1")func main() { cfg, err := ini.Load("my.ini") if err != nil { fmt.Printf("Fail to read file: %v", err) os.Exit(1) } // 查看默认分区配置 fmt.Printf("Run Mode: %s\n", cfg.Section("").Key("RUN_MODE").String()) // 查看指定分区配置 fmt.Printf("Page Size: %s\n", cfg.Section("app").Key("PAGE_SIZE").String()) // 自动类型转换示例 httpPort := cfg.Section("server").Key("HTTP_PORT").MustInt(9999) fmt.Printf("Http Port: (%s) %d\n", httpPort.Type(), httpPort) // 修改配置并保存 cfg.Section("").Key("RUN_MODE").SetValue("release") cfg.SaveTo("my.ini.local")}
运行程序时,输出将包含修改后的内容。
操作分区(Section)
获取指定分区的值
sec, err := cfg.GetSection("section_name")if err != nil { // 处理错误}
获取默认分区的值
默认分区使用空字符串:
sec, err := cfg.GetSection("")if err != nil { // 处理错误}
操作键值(Value)
获取字符串值
value := cfg.Section("").Key("key_name").String()
使用 Must* 方法
如果明确知道键值类型,可以使用 Must* 方法:
boolVal := cfg.Section("").Key("BOOL").MustBool(true)intVal := cfg.Section("").Key("INT").MustInt(10)
使用 In* 方法
设置候选值,使用 In* 方法:
value := cfg.Section("").Key("STRING").In("default", []string{"str", "arr", "types"})
结构体与分区映射
示例
定义一个结构体:
type DatabaseSetting struct { Type string User string Password string Host string Name string TablePrefix string}
配置文件
[database]TYPE = mysqlUSER = 数据库账号PASSWORD = 数据库密码#127.0.0.1:3306HOST = 数据库IP:数据库端口号NAME = blogTABLE_PREFIX = blog_
使用方法
err := cfg.Section("database").MapTo\DatabaseSettingif err != nil { // 处理错误}
使用心得
配置文件很少更改,因此通常使用单例模式。通过令素变量存储配置文件,读取一次即可。可以在 init 函数中读取并初始化。
以上内容可根据具体场景定制,并结合项目需求进行优化。
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月08日 01时34分35秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
iOS_Runtime3_动态添加方法
2019-03-07
Leetcode第557题---翻转字符串中的单词
2019-03-07
Problem G. The Stones Game【取石子博弈 & 思维】
2019-03-07
Unable to execute dex: Multiple dex files
2019-03-07
Java多线程
2019-03-07
Unity监听日记
2019-03-07
AndroidStudio跳到错误位置
2019-03-07
openssl服务器证书操作
2019-03-07
expect 模拟交互 ftp 上传文件到指定目录下
2019-03-07
linux系统下双屏显示
2019-03-07
PDF.js —— vue项目中使用pdf.js显示pdf文件(流)
2019-03-07
我用wxPython搭建GUI量化系统之最小架构的运行
2019-03-07
我用wxPython搭建GUI量化系统之多只股票走势对比界面
2019-03-07
selenium+python之切换窗口
2019-03-07
重载和重写的区别:
2019-03-07
搭建Vue项目步骤
2019-03-07
账号转账演示事务
2019-03-07
idea创建工程时错误提醒的是architectCatalog=internal
2019-03-07
SpringBoot找不到@EnableRety注解
2019-03-07
简易计算器案例
2019-03-07