最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

golang讀取各種配置文件(ini、json、yaml)

 更新時間:2022年05月13日 15:15:06   作者:FootMark.run  
日常項目中,讀取各種配置文件是避免不了的,本文主要介紹了golang讀取各種配置文件(ini、json、yaml),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧

日常項目中,讀取各種配置文件是避免不了的,這里介紹一個能讀取多種配置文件的庫,viper

viper讀取ini文件

config := viper.New()
config.AddConfigPath("./conf/")  // 文件所在目錄
config.SetConfigName("b")        // 文件名
config.SetConfigType("ini")      // 文件類型
 
if err := config.ReadInConfig(); err != nil {
    if _, ok := err.(viper.ConfigFileNotFoundError); ok {
        fmt.Println("找不到配置文件..")
    } else {
        fmt.Println("配置文件出錯..")
    }
}
 
host := config.GetString("redis.host")  // 讀取配置
fmt.Println("viper load ini: ", host)

b.ini文件如下

[mysql]
username='root'
password='123456'
 
[redis]
host='127.0.0.1'
poet=3306
 
[mongodb]
user='admin'
password='admin'

viper讀取json文件

config := viper.New()
config.AddConfigPath("./conf/")
config.SetConfigName("c")
config.SetConfigType("json")
 
if err := config.ReadInConfig(); err != nil {
    if _, ok := err.(viper.ConfigFileNotFoundError); ok {
        fmt.Println("找不到配置文件..")
    } else {
        fmt.Println("配置文件出錯..")
    }
}
 
version := config.GetString("version")
origin := config.GetString("host.origin")
 
fmt.Println(version)
fmt.Println(origin)
 
// 讀取到map中
host := config.GetStringMapString("host")
fmt.Println(host)
fmt.Println(host["origin"])
fmt.Println(host["port"])
 
allSettings := config.AllSettings()
fmt.Println(allSettings)

c.json文件如下

{
  "version": "2.0",
  "secret": "footmark",
  "host": {
    "origin": "http://www.baidu.com",
    "port": 8080
  }
}

viper讀取yaml文件

config := viper.New()
config.AddConfigPath("./conf/")
config.SetConfigName("a")
config.SetConfigType("yaml")
 
if err := config.ReadInConfig(); err != nil {
    if _, ok := err.(viper.ConfigFileNotFoundError); ok {
        fmt.Println("找不到配置文件..")
    } else {
        fmt.Println("配置文件出錯..")
    }
}
 
host := config.GetString("database.host")
fmt.Println("viper load yml: ", host)
 
allSettings := config.AllSettings()
fmt.Println(allSettings)

a.yaml文件如下

database:
  host: 127.0.0.1
  user: root
  dbname: test
  pwd: 123456

viper常用方法

// viper 常用讀取配置的方法
Get(key string) : interface{}
GetBool(key string) : bool
GetFloat64(key string) : float64
GetInt(key string) : int
GetIntSlice(key string) : []int
GetString(key string) : string
GetStringMap(key string) : map[string]interface{}
GetStringMapString(key string) : map[string]string
GetStringSlice(key string) : []string
GetTime(key string) : time.Time
GetDuration(key string) : time.Duration
IsSet(key string) : bool
AllSettings() : map[string]interface{}

到此這篇關(guān)于golang讀取各種配置文件(ini、json、yaml)的文章就介紹到這了,更多相關(guān)golang讀取配置文件 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Golang中的自定義函數(shù)類型詳解

    Golang中的自定義函數(shù)類型詳解

    在 Golang 中,type 關(guān)鍵字用于定義自定義類型,函數(shù)也是一種數(shù)據(jù)類型,因此可以使用 type 關(guān)鍵字來定義函數(shù)類型,本文就給大家詳細介紹一下Golang中的自定義函數(shù)類型,需要的朋友可以參考下
    2023-07-07
  • 詳解Go語言中如何高效地處理集合

    詳解Go語言中如何高效地處理集合

    在?Go?語言中,雖然沒有像?Java?或?Python?那樣的傳統(tǒng)集合框架,但也可以非常高效地處理集合操作,下面小編就來和大家講講具體處理方法吧
    2025-01-01
  • Go語言中嵌入式緩存庫的用法詳解

    Go語言中嵌入式緩存庫的用法詳解

    Go?語言中有一些非常高效的嵌入式緩存庫,groupcache?和?bigcache?是兩個非常流行且高性能的庫,本文將詳細介紹一下二者的用法,有需要的小伙伴可以參考下
    2025-01-01
  • 從淺入深帶你掌握Golang數(shù)據(jù)結(jié)構(gòu)map

    從淺入深帶你掌握Golang數(shù)據(jù)結(jié)構(gòu)map

    在?Go?語言中,map?是一種非常常見的數(shù)據(jù)類型,它可以用于快速地檢索數(shù)據(jù)。本篇文章將介紹?Go?語言中的?map,包括?map?的定義、初始化、操作和優(yōu)化,需要的可以參考一下
    2023-04-04
  • Gin 框架快速創(chuàng)建靜態(tài)文件下載Web服務(wù)

    Gin 框架快速創(chuàng)建靜態(tài)文件下載Web服務(wù)

    本文主要介紹了Gin 框架快速創(chuàng)建靜態(tài)文件下載Web服務(wù),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Go?語言入門之net/url?包

    Go?語言入門之net/url?包

    這篇文章主要介紹了Go?語言入門之net/url?包,文章基于GO語言的相關(guān)資料展開?net/url?包的詳細內(nèi)容,具有一定的的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • Go語言實現(xiàn)的樹形結(jié)構(gòu)數(shù)據(jù)比較算法實例

    Go語言實現(xiàn)的樹形結(jié)構(gòu)數(shù)據(jù)比較算法實例

    這篇文章主要介紹了Go語言實現(xiàn)的樹形結(jié)構(gòu)數(shù)據(jù)比較算法,實例分析了樹形結(jié)構(gòu)數(shù)據(jù)比較算法的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • Go文件操作(新建打開寫入讀取刪除關(guān)閉)學(xué)習筆記

    Go文件操作(新建打開寫入讀取刪除關(guān)閉)學(xué)習筆記

    這篇文章主要為大家介紹了Go文件操作(新建打開寫入讀取刪除關(guān)閉)學(xué)習筆記,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Golang使用泛型對數(shù)組進行去重的實現(xiàn)

    Golang使用泛型對數(shù)組進行去重的實現(xiàn)

    本文主要介紹了Golang使用泛型對數(shù)組進行去重的實現(xiàn),通過使用類型參數(shù)T和類型約束any,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2025-02-02
  • Go語言中更優(yōu)雅的錯誤處理

    Go語言中更優(yōu)雅的錯誤處理

    Go語言中的錯誤處理是一個被大家經(jīng)常拿出來討論的話題(另外一個是泛型)。篇文章我們將討論一下如何在現(xiàn)行的 Golang 框架下提供更友好和優(yōu)雅的錯誤處理。需要的朋友們可以參考借鑒,下面來一起看看吧。
    2017-02-02

最新評論

德化县| 周口市| 遂昌县| 林州市| 西昌市| 田林县| 堆龙德庆县| 尉氏县| 信丰县| 绿春县| 鹤山市| 绩溪县| 重庆市| 新营市| 松潘县| 鄂托克前旗| 承德县| 鄢陵县| 阳高县| 务川| 伊通| 淮阳县| 江川县| 桓仁| 繁峙县| 仁怀市| 正阳县| 绥宁县| 汕头市| 揭阳市| 定安县| 金门县| 怀安县| 清水河县| 建湖县| 德兴市| 社旗县| 区。| 西充县| 额尔古纳市| 比如县|