问题描述
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 (将#修改为@)