程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Golang Viper GetSliceString 不解析 yml 文件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Golang Viper GetSliceString 不解析 yml 文件?

开发过程中遇到Golang Viper GetSliceString 不解析 yml 文件的问题如何解决?下面主要结合日常开发的经验,给出你关于Golang Viper GetSliceString 不解析 yml 文件的解决方法建议,希望对你解决Golang Viper GetSliceString 不解析 yml 文件有所启发或帮助;

我使用的是从问题标题推断出来的 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 Viper GetSliceString 不解析 yml 文件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。