如何解决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 举报,一经查实,本站将立刻删除。