# readconfig **Repository Path**: nonli/readconfig ## Basic Information - **Project Name**: readconfig - **Description**: read .ini file Golang package service-computing course assignment - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-10-18 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # readconfig ## 简单介绍 - 实现了ini的配置文件读取 - 提供接口使得用户可以自己处理配置变化 ## 简单的使用案例 ```go package main import ( "fmt" "github.com/LEEzanhui/readini/readconfig" ) func listen(filename string) { //expression } func main() { var run readconfig.Listener run = readconfig.ListenFunc(listen) readconfig.AddConfigPath("/home/nonoli/gowork/src/github.com/LEEzanhui/hello/") config, err := readconfig.Watch("test2", run) if err != nil { panic(fmt.Errorf("Fatal error config file: %s ", err)) } for k, v := range config { fmt.Println(k, " = ", v) } } ``` ## 使用说明 > 以下的使用均是简单示例 - 输出 configuration 数据类型,可根据 key 读对应的 value。 key 和 value 都是字符串 - 输出 error 是错误数据,如配置文件不存在,无法打开等 ### Listener接口的使用方法 ```go func listen(filename string) {...} func main() { var run readconfig.Listener run = readconfig.ListenFunc(listen) ... } ``` 其中的`run`就可以作为参数进入`Watch`函数中,`Watch`函数会自动运行该函数,以达到开发者的目的; ### Watch函数的使用 ```go readconfig.AddConfigPath("PATH") config, err := readconfig.Watch("FILENAME", run) if err != nil { panic(fmt.Errorf("Fatal error config file: %s ", err)) } ``` 其中,`PATH`为文件路径,`FILENAME`为文件名(不需要注明文件格式),`run`为进入Listener接口的函数,`config`为返回的类型为Configuration的变量(在readconfig中定义),`err`为返回的自定义错误类型,如文件不存在等; - 在`Watch`函数中,会等待listen函数执行完毕后,才会执行ini配置文件读取,所以可以使用listen函数监听文件,在发生变化时返回,使Watch返回变化后的配置文件; ### Configuration类型变量的访问 ```go fmt.Println(config["server.http_port"]) ``` Configuration类型变量中保存了键值,且均是字符串; 通过输入字符串类型的键,会返回字符串类型的值;