golang的url包中没有Query方法?

package main

import (
    "fmt"
    "io"
    "net/http"
    "net/url"
)

type router struct{}

func (*router) ServeHTTP(w http.ResponseWriter, r *http.Request) {
    path := r.URL.String() //获得访问的路径
    fmt.Println(path)
    urlStruct, err := url.Parse(path)
    if err != nil {
        fmt.Println(err)
    }
    rawQuery := urlStruct.RawQuery
    //    fmt.Println(rawQuery)
    queryMap, err := url.ParseQuery(rawQuery)
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println(queryMap)
    fmt.Println(queryMap["id"])
    fmt.Println("______")
    //    io.WriteString(w, queryMap["id"])
    io.WriteString(w, url.URL.Query(urlStruct.RawQuery))
}

func main() {
    http.ListenAndServe(":80", &router{}) //第2个参数需要实现Hander接口的struct
}

该代码报错

.main.go:29: invalid method expression url.URL.Query (needs pointer
receiver: (*url.URL).Query) .main.go:29: url.URL.Query undefined
(type url.URL has no method Query)

http://studygolang.com/pkgdoc 官方手册里面明明有这个方法啊


我的环境

C:\Users\Administrator>go version
go version go1.7.5 windows/amd64
阅读 4.5k
1 个回答

你看错了,url.URL 才有这个方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题