GoLang 类型不匹配 []string 和 string

huangapple go评论116阅读模式
英文:

GoLang mismatched types []string and string

问题

我正在尝试在GoLang上编写HTTP API。当我比较两个字符串时,出现了以下错误:"invalid operation: a.TypeI == m["type"][0] (mismatched types []string and string)"。我该如何修复这个错误?有人可以帮忙吗?

  1. func listHandler(w http.ResponseWriter, r *http.Request) {
  2. u, errUrl := url.Parse(r.URL.String())
  3. check(errUrl)
  4. m, _ := url.ParseQuery(u.RawQuery)
  5. dat, err := ioutil.ReadFile("data.json")
  6. check(err)
  7. var basedata BaseData
  8. err2 := json.Unmarshal(dat, &basedata)
  9. check(err2)
  10. for _, a := range basedata.Pokemons {
  11. if a.TypeI == m["type"][0] || a.TypeII == m["type"][0] {
  12. fmt.Fprintln(w, "dosomething")
  13. }
  14. }
  15. }

以上是你要翻译的内容。

英文:

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 ?

  1. func listHandler(w http.ResponseWriter, r *http.Request) {
  2. u, errUrl := url.Parse(r.URL.String())
  3. check(errUrl)
  4. m, _ := url.ParseQuery(u.RawQuery)
  5. dat, err := ioutil.ReadFile("data.json")
  6. check(err)
  7. var basedata BaseData
  8. err2 := json.Unmarshal(dat, &basedata)
  9. check(err2)
  10. for _, a := range basedata.Pokemons {
  11. if a.TypeI == m["type"][0] || a.TypeII == m["type"][0] {
  12. fmt.Fprintln(w, "dosomething")
  13. }
  14. }
  15. }

答案1

得分: 0

在查看url包的Go文档时,你需要使用Values.Get

  1. if a.TypeI == m.Get("type") || a.TypeII == m.Get("type") {
  2. // 做一些操作
  3. }

此外,你可以像这样打印r.URL.String()的值:

  1. fmt.Println(r.URL.String())
英文:

Looking at the Go docs for the url package, you want Values.Get:

  1. if a.TypeI == m.Get("type") || a.TypeII == m.Get("type") {
  2. // do something
  3. }

Furthermore, can you print the value of r.URL.String() for me like this:

  1. fmt.Println(r.URL.String())

huangapple
  • 本文由 发表于 2017年5月14日 04:08:53
  • 转载请务必保留本文链接:https://go.coder-hub.com/43957535.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定