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

GO語言ini配置文件的讀取的操作

 更新時(shí)間:2021年05月08日 09:07:27   作者:Coldestmonth  
這篇文章主要介紹了GO語言ini配置文件的讀取的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

iniconf

博主前兩天在寫一個(gè)小的go語言項(xiàng)目,想找一個(gè)讀取ini格式配置和的三方庫,在網(wǎng)上找了一圈感覺都不是很好用, 使用起來非常的奇怪,于是自己寫了一版,還有兩個(gè)接口沒有實(shí)現(xiàn),在項(xiàng)目中修改或刪除配置項(xiàng)后更新到文件中,等待后續(xù)有時(shí)間了再寫,希望用的朋友感覺不錯(cuò)點(diǎn)個(gè)贊

github 地址

描述

使用iniconf更簡單的讀取go的ini配置文件以及根據(jù)特定格式的各種配置文件。

安裝方法

go get github.com/clod-moon/goconf

使用方法

ini配置文件格式樣列

[database]
username = root
password = password
hostname = localhost
[admin]
username = root
password = password
[nihao]
username = root
password = password

初始化

conf := goini.InitConfig("./conf/conf.ini")
 //iniconf.InitConfig(filepath) 其中filepath是你ini 配置文件的所在位置

獲取單個(gè)配置信息

username := conf.GetValue("database", "username") 
//database是你的[section],username是你要獲取值的key名稱
fmt.Println(username) //root

刪除一個(gè)配置信息

conf.DeleteValue("database", "username") 
//username 是你刪除的key
username = conf.GetValue("database", "username")
if len(username) == 0 {
 fmt.Println("username is not exists") 
 //this stdout username is not exists
}

添加一個(gè)配置信息

conf.SetValue("database", "username", "chun")
username = conf.GetValue("database", "username")
fmt.Println(username) 
//chun 添加配置信息如果存在[section]則添加或者修改對(duì)應(yīng)的值,如果不存在則添加section

獲取所有配置信息

conf.GetAllSetion() //返回map[string]map[string]string的格式 即setion=>key->value

iniconf

About

使用iniconf更簡單的讀取go的ini配置文件以及根據(jù)特定格式的各種配置文件。

example

func main() {
 conf := iniconf.InitConfig("./config.ini")
 for key,value :=range conf.Conflist {
  fmt.Println(key)
  for k,v := range value{
   fmt.Println(k,":",v)
  }
 }
 fmt.Println(conf.GetValue("esinfo","addr"))
 conf.SetValue("esinfo","addr","127.100.100.100")
 fmt.Println(conf.GetValue("esinfo","addr"))
}

output

esinfo
addr : 127.0.0.1
port : 9200
index : case
type : case
127.0.0.1
127.100.100.100
Process finished with exit code 0

補(bǔ)充:GoLang 使用goconfig讀取配置文件(.ini、.json、.yaml)

一、goconfig讀取.ini類型配置文件

1、配置文件(config.ini)如下:

[RabbitMQ]
MQUrl        = amqp://trkj:trkj@192.168.5.62:5672/test
Exchange     = EX.WALLDATA
ExchangeType = fanout
RoutingKey   = RK.WALLDATA
 
[Base]
messageFrequency = 5

2、解析配置文件:

package main 
import (
 "fmt"
 "github.com/hyahm/goconfig"
)
 
type RabbitMQ struct {
 MQUrl string
 Exchange string
 ExchangeType string
 RoutingKey string
}
 
type BaseConfig struct {
 MsgFrequency int64 // 消息發(fā)送頻率
 RabbitMQ // MQ信息
}
 
func ReadBaseConfig(bconfig *BaseConfig, confFile string) {
 goconfig.InitConf(confFile, goconfig.INI)
 bconfig.MsgFrequency = goconfig.ReadInt64("Base.messageFrequency", 3)
 bconfig.RabbitMQ.MQUrl = goconfig.ReadString("RabbitMQ.MQUrl", "")
 bconfig.RabbitMQ.Exchange = goconfig.ReadString("RabbitMQ.Exchange", "")
 bconfig.RabbitMQ.ExchangeType = goconfig.ReadString("RabbitMQ.ExchangeType", "")
 bconfig.RabbitMQ.RoutingKey = goconfig.ReadString("RabbitMQ.RoutingKey", "")
}
 
func main() {
 baseConfig := BaseConfig{}
 ReadBaseConfig(&baseConfig, "./Config.ini")
 fmt.Printf("mq.MQUrl = %s \t mq.Exchange = %s \t mq.ExchangeType = %s \t mq.RoutingKey = %s\n", baseConfig.RabbitMQ.MQUrl, baseConfig.RabbitMQ.Exchange, baseConfig.RabbitMQ.ExchangeType, baseConfig.RabbitMQ.RoutingKey)
 fmt.Printf("msgFrequency = %d\n", baseConfig.MsgFrequency)
 
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • 使用goland調(diào)試遠(yuǎn)程代碼的操作步驟

    使用goland調(diào)試遠(yuǎn)程代碼的操作步驟

    大家都知道如何在goland調(diào)試遠(yuǎn)程代碼嗎?今天小編給大家分享一篇教程幫助大家學(xué)習(xí)goland調(diào)試遠(yuǎn)程代碼的操作步驟,感興趣的朋友跟隨小編一起看看吧
    2021-06-06
  • 關(guān)于go-micro與其它gRPC框架之間的通信問題及解決方法

    關(guān)于go-micro與其它gRPC框架之間的通信問題及解決方法

    在之前的文章中分別介紹了使用gRPC官方插件和go-micro插件開發(fā)gRPC應(yīng)用程序的方式,都能正常走通。不過當(dāng)兩者混合使用的時(shí)候,互相訪問就成了問題,下面通過本文給大家講解下go-micro與gRPC框架通信問題,一起看看吧
    2022-04-04
  • golang默認(rèn)Logger日志庫在項(xiàng)目中使用Zap日志庫

    golang默認(rèn)Logger日志庫在項(xiàng)目中使用Zap日志庫

    這篇文章主要為大家介紹了golang默認(rèn)Logger日志庫在項(xiàng)目中使用Zap日志庫,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • Golang基于Vault實(shí)現(xiàn)敏感信息保護(hù)

    Golang基于Vault實(shí)現(xiàn)敏感信息保護(hù)

    Vault?是一個(gè)強(qiáng)大的敏感信息管理工具,自帶了多種認(rèn)證引擎和密碼引擎,本文主要探討應(yīng)用程序如何安全地從?Vault?獲取敏感信息,并進(jìn)一步實(shí)現(xiàn)自動(dòng)輪轉(zhuǎn),感興趣的可以了解一下
    2023-06-06
  • Go語言中slice的用法實(shí)例分析

    Go語言中slice的用法實(shí)例分析

    這篇文章主要介紹了Go語言中slice的用法,實(shí)例分析了slice的功能及使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • Go語言實(shí)現(xiàn)簡單Web服務(wù)器的方法

    Go語言實(shí)現(xiàn)簡單Web服務(wù)器的方法

    這篇文章主要介紹了Go語言實(shí)現(xiàn)簡單Web服務(wù)器的方法,實(shí)例分析了Web服務(wù)器的實(shí)現(xiàn)原理與相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • Go語言接口的嵌套的具體使用

    Go語言接口的嵌套的具體使用

    在Go語言中,不僅結(jié)構(gòu)體與結(jié)構(gòu)體之間可以嵌套,接口與接口間也可以通過嵌套創(chuàng)造出新的接口,本文主要介紹了Go語言接口的嵌套的具體使用,感興趣的可以了解一下
    2023-04-04
  • GoLang之使用Context控制請(qǐng)求超時(shí)的實(shí)現(xiàn)

    GoLang之使用Context控制請(qǐng)求超時(shí)的實(shí)現(xiàn)

    這篇文章主要介紹了GoLang之使用Context控制請(qǐng)求超時(shí)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 玩轉(zhuǎn)Go命令行工具Cobra

    玩轉(zhuǎn)Go命令行工具Cobra

    這篇文章主要介紹了玩轉(zhuǎn)Go命令行工具Cobra,本文介紹了Cobra的最基本也是最常用的使用部分,但是Cobra仍然有很多優(yōu)秀的操作值得我們學(xué)習(xí),需要的朋友可以參考下
    2022-08-08
  • 使用Golang實(shí)現(xiàn)AES加解密的代碼示例

    使用Golang實(shí)現(xiàn)AES加解密的代碼示例

    在現(xiàn)代的數(shù)據(jù)安全中,加密和解密是極其重要的一環(huán),其中,高級(jí)加密標(biāo)準(zhǔn)(AES)是最廣泛使用的加密算法之一,本文將介紹如何使用Golang來實(shí)現(xiàn)AES加密和解密,需要的朋友可以參考下
    2024-04-04

最新評(píng)論

南宁市| 绥阳县| 山西省| 霍林郭勒市| 无锡市| 襄垣县| 东乡县| 新田县| 吉林市| 阿克| 浦江县| 绥阳县| 靖江市| 广丰县| 桐梓县| 离岛区| 周口市| 潢川县| 晋宁县| 溧阳市| 襄垣县| 绥棱县| 方正县| 广丰县| 苏尼特左旗| 大石桥市| 正宁县| 昔阳县| 文昌市| 隆林| 浦江县| 清水河县| 霍林郭勒市| 招远市| 上林县| 丹巴县| 仙桃市| 浮梁县| 霍州市| 五家渠市| 泰顺县|