Golang Viper GetSliceString 不解析 yml 文件
Golang Viper GetSliceString not parsing yml file
根据问题标题推断,我正在使用 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)
}
element.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。我的 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)
}
element.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)
}