«
无法改变时只能去适应:goLang中使用YAML配置文件

时间:2022-4-6    作者:思忆迷往    分类: 代码人生


独白

地球上有很多生物为了生存都有着非常强大的自适应能力,根据当前自身所处的环境来调整自己的生活方式、食物结构等等,小到细菌病毒,大到哺乳动物。但并不是所有的生物是如此。人,就是在这颗蓝色星球上这样思维的最具代表性的生物。大多数人并不会主动改变自己去适应环境。一部分人始终相信自己能够改变,一部分人在经历了人生的沉浮后明白了要先改变自己才能改变环境,一部分人一开始就明白环境的改变是从改变自己开始的。

“如果你不能改变自己,你就改变世界;如果你不能改变世界,你就改变自己。”,出自摇滚音乐家约·列侬。简单而又富含极其深刻哲学意义的一句话,阐明了人从成长到成功的奥秘。

正文


// 导入需要使用到的包
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 。

后记

工作生活中无论何事,也无论我们做的何事,都有其独特的哲理。当我们还成长到足以改变这个世界的强大时,那就只能改变自己,让自己变得越来越强大。亦如,计算机程序希望运行在不同的计算机操作系统中,那么就需要兼容这个操作系统,因为程序是无法对操作系统进行修改的,所以引入配置文件修改程序自身的运行参数就是解决兼容性问题的手段之一。