2017-05-13 2 views
-3

GoLang에 http api를 쓰려고합니다. 내가 2 문자열을 비교할 때, 나는 "잘못된 연산 : a.TypeI == m ["type "] [0] (불일치 한 유형 [] 문자열 및 문자열)"오류가 발생합니다. " 어떻게 해결할 수 있습니까? 아무도 도와 줄 수 있습니까?GoLang이 일치하지 않는 유형 [] 문자열 및 문자열

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") 
     } 

    } 
} 
+2

로부터 오류는'[] string'을'string'과 비교할 수있는 것처럼 보입니다. 어쩌면 조건부가 문제 일 수 있습니다. –

+2

'a.TypeI','a.TypeII' 및'm [ "type"] [0]'을 로깅하여 그 유형을 확인하는 것이 좋습니다. –

+0

둘 다 문자열입니다 –

답변

0

url 패키지의 이동 문서를 보면, 당신은 Values.Get 원하는 :

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

또한,이 같은 나를 위해 r.URL.String()의 값을 인쇄 할 수 있습니다

fmt.Println(r.URL.String()) 
관련 문제