笔者独白
正文
// 导入需要使用到的包
import (
"fmt"
"gopkg.in/ YAML .v2" // yaml解析库
"io/ioutil" // I/O 工具函数包
)
// 创建一个 结构体 ,字段要和 yaml 中的配置字段对应
type Config struct {
SavePath string `yaml`:"SavePath" // 存放目录路径
Debug bool `yaml`:"Debug" // 是否开启调试模式
}
func main() {
// 读取yaml文件
yamlConf, err := ioutil.ReadFile("config.yaml")
// 异常判断,有则输出错误信息
if (err != nil) {
fmt.Println(err)
}
// 映射yaml文件中的配置数据到结构体
var conf Config
mappingErr := yaml.Unmarshal(yamlConf, &conf)
// 调用
fmt.Println(conf.SavePath)
}
YAML
YAML 是 “YAML Ain’t a Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:”Yet Another Markup Language”(仍是一种标记语言)。
YAML 的语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲(例如:许多电子邮件标题格式和YAML非常接近)。
YAML 的配置文件后缀为 .yml,如:config.yml 。
后记
工作生活中无论何事,也无论我们做的何事,都有其独特的哲理。当我们还成长到不足以改变这个世界的强大时,那就只能改变自己,让自己变得越来越强大。亦如,计算机程序希望运行在不同的计算机操作系统中,那么就需要兼容这个操作系统,因为程序是无法对操作系统进行修改的,所以引入配置文件修改程序自身的运行参数就是解决兼容性问题的手段之一。