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 = 李四


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM