08.3 viper 包

viper 是一个非常强大的包,它支持丰富的选项。所有项目使用 viper 的步骤都是一样的。首先,初始化 viper 并定义您需要的元素。然后,读取您得到的元素的值备用。注意,viper 包可以完全取代 flag 包。

您可以想使用 Go 语言标准库 flag 包一样,直接获取想要的值,也可以通过配置文件间接获取。使用 JSON、YAML、TOML、HCL 或者 Java 属性这些格式的配置时,viper 会自动完成解析,替您省掉了大量开发和调试的时间。viper 也支持解析参数并存储到 Go 结构体中。不过,这需要 Go 结构体中的字段和配置文件中的相匹配。

viper 的主页发布在 GitHub(https://github.com/spf13/viper)。请注意,您的工具不必用到 viper 的所有功能,只要用到您需要的就行了。总的原则就是要使用 viper 中哪些能够简化您代码的功能。简单来说,如果您的命令行工具需要特别多命令行参数和标签,那么使用配置文件会是一个更好的选择。

Last updated

Was this helpful?