登录
首页 >  Golang >  Go问答

Golang Viper GetSliceString不解析yml文件

来源:stackoverflow

时间:2024-04-19 14:42:31 318浏览 收藏

大家好,今天本人给大家带来文章《Golang Viper GetSliceString不解析yml文件》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

问题内容

根据问题标题推断,我正在使用 golang 和 viper。我的 element.yml 文件与尝试解析它的文件位于同一目录中,它能够获取字符串和整数,但由于某种原因无法使用 getstringslice() 方法获取字符串切片。有人知道我做错了什么吗?我在验证器中运行了 yml,确认一切正常。代码如下:

func getelementstring(s string) string {  //works
    vi := viper.new()
    vi.setconfigfile("element.yml")
    vi.readinconfig()
    return vi.getstring(s)
}

func getelementint(s string) int {  //works
    vi := viper.new()
    vi.setconfigfile("element.yml")
    vi.readinconfig()
    return vi.getint(s)
}

func getelementslicestring(s string) []string { //does not work
    vi := viper.new()
    vi.setconfigfile("element.yml")
    vi.readinconfig()
    return vi.getstringslice(s)
}

元素.yml

key: "value"
urls: 
  - "https://twitter.com/elonmusk"
  - "https://twitter.com/elonmusk/with_replies"
  - "https://twitter.com/elonmusk/likes"

我编写的用于驱动方法的测试适用于整数和字符串,但不适用于字符串切片。我做错了什么??


正确答案


我在我的机器上运行这个没有任何问题。
我建议您尝试捕获读取文件时的错误,看看是否有帮助。
如果需要,您还可以提供文件路径。

func GetElementSliceString(s string) []string {
    vi := viper.New()
    vi.SetConfigFile("element.yml")
    vi.AddConfigPath("./")          // Path here
    err := vi.ReadInConfig()        // catch error while reading the configs
    if err != nil {
        panic(err)
    }
    return vi.GetStringSlice(s)
}

本篇关于《Golang Viper GetSliceString不解析yml文件》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>