【问题标题】:Handling configurations without defining explicit type objects处理配置而不定义显式类型对象
【发布时间】:2021-01-18 16:11:26
【问题描述】:

我正在按照此处给出的solution (accepted answer) 在 Go 中加载配置值。 到目前为止一切顺利。

但是,我想在应用程序的不同模块中使用标准配置加载功能,为了简单起见,我试图在不明确定义客户对象(例如 type Configuration struct)的情况下实现加载配置。

因为每个配置文件都会不同,我不想在任何地方定义多个结构和结构,然后在配置中添加/删除新值时更改它们。

我可能比较不公平,但我正在寻找 python 中的哪个就像这样:

//in config.py
ENVIRONMENT = 'PROD'

//in main.py
import config
...
if config.ENVIRONMENT == 'PROD':
...

有这种可能吗?

【问题讨论】:

    标签: go configuration


    【解决方案1】:

    如果您的所有配置值都是字符串,则可以使用 map[string]string 类型;如果您需要任意值类型,则可以使用 map[string]interface{} 类型。

    虽然map[string]interface{} 有点麻烦而且安全性有点低,因为你可以将interface{} 转换为任何类型。

    这里是map[string]interface{}的使用指南:https://bitfieldconsulting.com/golang/map-string-interface

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-05
      • 2020-08-03
      • 2021-01-29
      • 2015-07-06
      • 2010-12-08
      相关资源
      最近更新 更多