猿问

在 golang 中读取 yaml 配置文件,我总是需要结构吗?

我想从 Golang 中的 yaml 读取配置常量。


示例:我有 config.yml


server:

  host: "localhost"

  port: 8080

和一个配置结构


type Config struct {

    Server struct {

        Port string `yaml:"port"`

        Host string `yaml:"host"`

    } `yaml:"server"`

}

然后我可以这样读:


f, err := os.Open("config.yml")

if err != nil {

    processError(err)

}


var cfg Config

decoder := yaml.NewDecoder(f)

err = decoder.Decode(&cfg)

if err != nil {

    processError(err)

}

我正在使用 gopkg.in/yaml.v2


我想解析它然后读取常量,我是否需要一个具有配置结构的结构?


UYOU
浏览 111回答 1
1回答

慕虎7371278

您可以将 yaml 文件解组到接口{}中:var data interface{} yaml.Unmarshal(input,&data)需要注意的一件事是https://gopkg.in/yaml.v2库解组为 map[interface{}]interface{},而不是 map[string]interface{}。
随时随地看视频慕课网APP

相关分类

Go
我要回答