golang 读取ini文件

· · 751 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

main.go

package main

import (
    "fmt"
    "gopkg.in/ini.v1"
    "log"
)

func main() {
    cfg, err := ini.Load("config.ini")
    getErr("load config", err)

    // 遍历所有的section
    for _, v := range cfg.Sections(){
        fmt.Println(v.KeyStrings())
    }

    // 获取默认分区的key
    fmt.Println(cfg.Section("").Key("version").String())    // 将结果转为string
    fmt.Println(cfg.Section("").Key("width").Float64())     // 将结果转为float

    // 获取mysql分区的key
    fmt.Println(cfg.Section("mysql").Key("host").String())  // 将结果转为string
    fmt.Println(cfg.Section("mysql").Key("port").Int())     // 将结果转为int

    // 如果读取的值不在候选列表内,则会回退使用提供的默认值
    fmt.Println("Server Protocol:",
        cfg.Section("mysql").Key("port").In("80", []string{"5555", "8080"}))

    // 自动类型转换
    fmt.Printf("Port Number: (%[1]T) %[1]d\n", cfg.Section("mysql").Key("port").MustInt(9999))
    fmt.Printf("Database Name: (%[1]T) %[1]s\n", cfg.Section("mysql").Key("database").MustString("test"))

    // 修改某个值然后进行保存
    cfg.Section("").Key("version").SetValue("2.0.0")
    cfg.SaveTo("config.ini")
}

func getErr(msg string, err error){
    if err != nil{
        log.Printf("%v err->%v\n", msg, err)
    }
}

config.ini

version = 2.0.0
width   = 75.3

[mysql]
host     = 127.0.0.1
port     = 8080
username = root
password = 111111
database = test

有疑问加站长微信联系

本文来自:简书

感谢作者:

查看原文:golang 读取ini文件

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:812540095

751 次点击  
加入收藏 微博
1 回复  |  直到 2019-11-16 15:53:25
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传