golang viper和hcl配置文件问题

问题描述

我用毒蛇编写了一个简单的go程序来读取配置文件

package main 
import (
    "fmt"
    "log"

    "github.com/spf13/viper"
)     

func main() {
    viper.SetConfigType("hcl")

    // # first used file
    viper.AddConfigPath(".")
    viper.SetConfigName("example.hcl")

    err := viper.ReadInConfig()
    if err != nil {
            log.Fatal(err)
    }

    fmt.Println("host.address =",viper.GetString("host.address"))
    fmt.Println("host.port =",viper.GetString("host.port"))
    viper.Reset()
}

的./example.hcl为

"host" = {
 "address" = "localhost"
 "port" = "5799" 
}   

程序的输出

host.address = 
host.port =

如果我将配置文件名称切换为.yaml(并相应地调整代码)并使用

{
"host": {
    "address": "localhost","port": 5799
}
}

代码有效。有人对我做错了什么建议吗?还是viper不适用于嵌入式hcl字段?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)