## 说明
配置文件在项目中发挥很重要的作用,有些东西需要灵活配置在一个文件里,以便日后做调整,不希望改动到源码,采用可配置的方式放在一个文件里,是一个不错的办法。Java 里 properties,xml conf 等等,使用得很广泛,就是这个原理。
https://github.com/robfig/config 这个库,适用于 cfg 文件,也就是说配置文件类似于 ini 格式的文件,如以下这个 config.cfg 文件 :
## 安装
go get github.com/robfig/config
## example
配置文件config.cfg
```
[DEFAULT]
host: www.example.com
protocol: http://
base-url: %(protocol)s%(host)s
[service-1]
url: %(base-url)s/some/path
delegation: on
maxclients: 200 # do not set this higher
comments: This is a multi-line
is_ok: true
# name: 5-wow.com
```
代码:
```go
c, _ := config.ReadDefault("config.cfg")
service, _ := c.String("service-1", "url")
is_ok, _ := c.Bool("service-1", "is_ok")
fmt.Println(service)
fmt.Println(is_ok)
```
- 命令行库cobra
- 用户路径检测go-homedir
- 配置解决方案viper(cobra配置用)
- 高效结构化日志库zap
- RPC框架grpc
- mongdb操作mgo
- ORM库xorm
- GRPCrest接口grpcgateway
- 使用gogoproto时grpcgateway的protobuf和json转换方法
- sync.Map
- zmq
- gogoproto
- go类型转换和类型断言
- go select用法详解以及定时器
- go并发资源竞争
- 官方命令行库flag
- 配置文件解析器 robig/config
- interface {} 接口
- goroutine && channel
- go 命名
- 类型switch
- 数据
- 初始化
- 指针方法 && 值方法
- 内嵌
- mqtt go实现
- grpc middleware