溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

goconfig使用解析

發(fā)布時(shí)間:2020-07-02 17:21:38 來(lái)源:網(wǎng)絡(luò) 閱讀:2204 作者:1350368559 欄目:編程語(yǔ)言

參考:https://github.com/Unknwon/go-rock-libraries-showcases/tree/master/lectures/01-goconfig

goconfig 簡(jiǎn)介

goconfig 是一個(gè)由 Go 語(yǔ)言開(kāi)發(fā)的針對(duì) Windows 下常見(jiàn)的 INI 格式的 配置文件解析器。該解析器在涵蓋了所有 INI 文件操作的基礎(chǔ)上,又針對(duì)Go 語(yǔ)言實(shí)際開(kāi)發(fā)過(guò)程中遇到的一些需求進(jìn)行了擴(kuò)展。相對(duì)于其它 INI 文件解析器而言,該解析器最大的優(yōu)勢(shì)在于 對(duì)注釋的極佳 支持;除此之外,支持 多個(gè)配置文件覆蓋加載 也是非常特別但好用的功能。

主要特性

  • 提供與WindowsAPI一模一樣的操作方式 - 支持遞歸讀取分區(qū)
  • 支持自增鍵名
  • 支持對(duì)注釋的讀與寫操作
  • 支持直接返回指定類型的鍵值 - 支持多個(gè)文件覆蓋加載

    下載安裝

  • 通過(guò)gopm安裝:
    gopm get github.com/Unknwon/goconfig
  • 通過(guò)goget安裝:
    go get github.com/Unknwon/goconfig
  • API文檔:GoWalker

    基本使用方法

    • 加載配置文件:
      cfg, err := goconfig.LoadConfigFile("conf.ini")
  • 基本讀寫操作:
    value, err := cfg.GetValue(goconfig.DEFAULT_SECTION,"key_default")
    isInsert := cfg.SetValue(goconfig.DEFAULT_SECTION,"key_default", "這是新的值”)

  • 注釋讀寫操作:
    comment := cfg.GetSectionComments("super")
    comment = cfg.GetKeyComments("super", "key_super")
    v := cfg.SetKeyComments("super", "key_super", "# 這是新的鍵注釋") v = cfg.SetSectionComments("super", "# 這是新的分區(qū)注釋")

  • 類型轉(zhuǎn)換讀取:
    vInt, err := cfg.Int("must", "int")
  • Must系列方法:
    vBool := cfg.MustBool("must", "bool")
  • 刪除指定鍵值:
    ok := cfg.DeleteKey("must", "string")
  • 保存配置文件:
    err = goconfig.SaveConfigFile(cfg, "conf_save.ini")

    高級(jí)使用方法

    高級(jí)使用方法

  • 多文件覆蓋加載:
    cfg, err := goconfig.LoadConfigFile("conf.ini", "conf2.ini") err = cfg.AppendFiles("conf3.ini")
  • 配置文件重載:
    err = cfg.Reload()
  • 為Must系列方法設(shè)置缺省值:
    vBool := cfg.MustBool("must", "bool404", true)
  • 遞歸讀取鍵值
    • 子孫分區(qū)覆蓋讀取 - 自增鍵名獲取
  • 獲取整個(gè)分區(qū):
    高級(jí)使用方法
    sec, err := cfg.GetSection("auto increment")

    總結(jié)

    goconfig 包的 API 提供非常全面,用法非常簡(jiǎn)單,但核心代碼并不多,各位 同學(xué)有興趣的可以閱讀其源代碼。

  • 使用案例:
    gopm、beego - i18n、beeweb、wetalk、gowalker
向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI