本文系作者原创,转载请注明出处https://www.cnblogs.com/sonofelice/p/9085291.html 。

一些mysql或者日志路径的信息需要放在配置文件中。那么本博文主要介绍go对toml文件的解析。

使用了  "github.com/BurntSushi/toml" 标准库。

1 toml文件的写法

[Mysql]
UserName = "sonofelice"
Password = ""
IpHost = "127.0.0.1:8902"
DbName = "sonofelice_db"

2 对toml文件的解析

为了要解析上面的toml文件,我们需要定义与之对应的struct:

type Mysql struct {
UserName string
Password string
IpHost string
DbName string
}

那么其实可以写这样一个conf.go

package conf

import (
"nlu/log"
"github.com/BurntSushi/toml"
"flag"
) var (
confPath string
// Conf global
Conf = &Config{}
) // Config .
type Config struct {
Mysql *Mysql
} type Mysql struct {
UserName string
Password string
IpHost string
DbName string
} func init() {
flag.StringVar(&confPath, "conf", "./conf/conf.toml", "-conf path")
} // Init init conf
func Init() (err error) {
_, err = toml.DecodeFile(confPath, &Conf)
return
}

通过简单的一行代码toml.DecodeFile(confPath, &Conf),就把解析好的struct存到了&Conf里面

那么我们在main里面调用一下init:

func main() {
flag.Parse()
if err := conf.Init(); err != nil {
log.Error("conf.Init() err:%+v", err)
}
mysqlConf := conf.Conf.Mysql
fmt.Println(mysqlConf.DbName)
}

然后运行一下main函数,就可以看到控制台中打印出了我们在conf.toml中配置的

sonofelice_db

Go学习笔记一:解析toml配置文件的更多相关文章

  1. Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml) -- 样例(6)

    managed-schema 样例: <?xml version="1.0" encoding="UTF-8" ?> <!-- License ...

  2. Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml)(3)

         5. <fieldType> fieldType主要定义了一些字段类型,其name属性值用于前面<field>中的type属性的值.e.g. <fieldTyp ...

  3. Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml) - filter(5)

    自定义fieldType时,通常还会用到filter.filter必须跟在tokenizer或其它filter之后.如: <fieldType> <analyzer> < ...

  4. Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml)(1)

    刚学Solr(版本6.7.0),新建一个core时,提示要求schema.xml文件,我找了半天也没在源码包中找到名为schema.xml的文件.这个版本其实用的是managed-schema文件,没 ...

  5. WCF学习笔记1--发布使用配置文件的服务

    关于WCF的入门网上资料很多,可以参考蒋金楠老师的博客http://www.cnblogs.com/artech/archive/2007/02/26/656901.html,我是从这篇博客开始学习的 ...

  6. java学习笔记DOM4J解析(7)

    DOM4J即Document Object Model for Java使用java技术以文档方式解析XML数据的模型. DOM4J是开源组织提供的一个免费的.强大的XML解析工具,如果开发者需要在项 ...

  7. Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml)(2)

    接上篇    2. <dynamicField> 为满足前辍或后辍的一些字段提供统一的定义.如<dynamicField name="*_s" index=&qu ...

  8. 【学习笔记】Struts2之配置文件struts.xml

    在默认情况下,Struts2只自动加载类加载路径下的struts.xml.default-struts.xml和struts-plugin.xml三类文件.但是随着应用规模的增大,系统中Action数 ...

  9. JavaWeb学习笔记——SAX解析

    import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHa ...

随机推荐

  1. golang Time to String

    golang Time to String allenhaozi · 2016-09-02 09:00:00 · 2447 次点击 · 预计阅读时间 1 分钟 · 19分钟之前 开始浏览 这是一个创建 ...

  2. Python之查询美国护照状态

    该程序会每隔至少1秒进行一次护照状态查询 需要修改passportNo变量为自己的护照号码. 另外需要pip install beautifulsoup4 #coding=utf-8 import r ...

  3. Spring Boot自动配置类

    http://docs.spring.io/spring-boot/docs/current/api/overview-summary.html http://docs.spring.io/sprin ...

  4. 基于Unity5的TPS整理

    1.游戏管理器 游戏管理器负责管理游戏的整体流程,还可以系统管理用于游戏的全局数据以及游戏中判断胜败的条件.游戏管理器并不是单一的模块,更像是能控制游戏的功能集合.1)怪兽出现逻辑:专门设置一些位置用 ...

  5. php -- PDO预处理

    可以使用多种方式实现预处理:指的是在绑定数据进行执行的时候,可以有多种方式. 预处理语句中为变量 使用数组指定预处理变量 1.准备预处理语句(发送给服务器,让服务器准备预处理语句) PDOStatem ...

  6. php -- 四种基础排序:冒泡、选择、插入、快速

    冒泡排序 思路分析:法如其名,就是像冒泡一样,每次从数组当中 冒一个最大的数出来. 第一轮:从第一个到最后一个冒泡比较,运行结果:最后一个最大 第二轮:从第一个到倒数第二个冒泡比较, 运行结果:最后一 ...

  7. HTML邮件注意事项(转)

    1.全局规则之一,不要写<style>标签.不要写class,所有CSS都用style属性,什么元素需要什么样式就用style写内联的CSS. 2.全局规则之二,少用图片,邮箱不会过滤你的 ...

  8. hdu 1232:畅通工程(数据结构,树,并查集)

    畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  9. Oracle 10g 数据库手动创建步骤

    Oracle 数据库手动创建步骤 编写初始化参数文件 设置操作系统环境变量 创建实例 以管理员身份连接数据库 启动实例 create database 创建数据库 运行数据字典脚本 Oracle的网络 ...

  10. Redesign Your App for iOS 7 之 页面布局

    Redesign Your App for iOS 7 之 页面布局 http://www.vinqon.com/codeblog/?detail/11109