如何在Go中解码包含数组的查询字符串?

How do you use Go to decode a query string structured like this?

/comments?ids[]=1&ids[]=2&ids[]=3

Right now this code:

query := r.URL.Query()
for k, _ := range query { fmt.Printf("%s
", k) }
ids := query.Get("ids[]")
if (ids != "") {
    fmt.Printf("Ids: %s
", ids)
}

results in:

ids[]
Ids: 1

Is there a built-in way to support this or am I going to have to parse this out by hand?

It looks like you can do this by calling

r.ParseForm()
fmt.Printf("Ids from form: %s
", r.Form["ids[]"])

which yields the following results:

Ids from form: [1 2 3]