英文:
GoLang mismatched types []string and string
问题
我正在尝试在GoLang上编写HTTP API。当我比较两个字符串时,出现了以下错误:"invalid operation: a.TypeI == m["type"][0] (mismatched types []string and string)"。我该如何修复这个错误?有人可以帮忙吗?
func listHandler(w http.ResponseWriter, r *http.Request) {
u, errUrl := url.Parse(r.URL.String())
check(errUrl)
m, _ := url.ParseQuery(u.RawQuery)
dat, err := ioutil.ReadFile("data.json")
check(err)
var basedata BaseData
err2 := json.Unmarshal(dat, &basedata)
check(err2)
for _, a := range basedata.Pokemons {
if a.TypeI == m["type"][0] || a.TypeII == m["type"][0] {
fmt.Fprintln(w, "dosomething")
}
}
}
以上是你要翻译的内容。
英文:
i am trying to write http api on GoLang. When i am comparing 2 string, i am taking this error "invalid operation: a.TypeI == m["type"][0] (mismatched types []string and string)". How can i fix, can anyone help ?
func listHandler(w http.ResponseWriter, r *http.Request) {
u, errUrl := url.Parse(r.URL.String())
check(errUrl)
m, _ := url.ParseQuery(u.RawQuery)
dat, err := ioutil.ReadFile("data.json")
check(err)
var basedata BaseData
err2 := json.Unmarshal(dat, &basedata)
check(err2)
for _, a := range basedata.Pokemons {
if a.TypeI == m["type"][0] || a.TypeII == m["type"][0] {
fmt.Fprintln(w, "dosomething")
}
}
}
答案1
得分: 0
在查看url
包的Go文档时,你需要使用Values.Get
:
if a.TypeI == m.Get("type") || a.TypeII == m.Get("type") {
// 做一些操作
}
此外,你可以像这样打印r.URL.String()
的值:
fmt.Println(r.URL.String())
英文:
Looking at the Go docs for the url
package, you want Values.Get
:
if a.TypeI == m.Get("type") || a.TypeII == m.Get("type") {
// do something
}
Furthermore, can you print the value of r.URL.String()
for me like this:
fmt.Println(r.URL.String())
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论