func Float64s(vs url.Values, k string, is ...int) (as []float64) {
	for i := range vs[k] {
		as = append(as, Float64(vs, k, i))
	}
	return
}
Float64s is similar to Float32s but for []float64 type.
package strconv
import (
	"net/url"
	"strconv"
	"strings"
)
func Bool(vs url.Values, k string, is ...int) bool {
	switch strings.ToLower(get(vs, k, is)) {
	case "", "0", "f", "false":
		return false
	}
	return true
}
func Bools(vs url.Values, k string, is ...int) (as []bool) {
	for i := range vs[k] {
		as = append(as, Bool(vs, k, i))
	}
	return
}
func String(vs url.Values, k string, is ...int) string {
	return get(vs, k, is)
}
func Strings(vs url.Values, k string, is ...int) []string {
	return vs[k]
}
func Int(vs url.Values, k string, is ...int) int {
	n, _ := strconv.ParseInt(get(vs, k, is), 0, 0)
	return int(n)
}
func Ints(vs url.Values, k string, is ...int) (as []int) {
	for i := range vs[k] {
		as = append(as, Int(vs, k, i))
	}
	return
}
func Int8(vs url.Values, k string, is ...int) int8 {
	n, _ := strconv.ParseInt(get(vs, k, is), 0, 8)
	return int8(n)
}
func Int8s(vs url.Values, k string, is ...int) (as []int8) {
	for i := range vs[k] {
		as = append(as, Int8(vs, k, i))
	}
	return
}
func Int16(vs url.Values, k string, is ...int) int16 {
	n, _ := strconv.ParseInt(get(vs, k, is), 0, 16)
	return int16(n)
}
func Int16s(vs url.Values, k string, is ...int) (as []int16) {
	for i := range vs[k] {
		as = append(as, Int16(vs, k, i))
	}
	return
}
func Int32(vs url.Values, k string, is ...int) int32 {
	n, _ := strconv.ParseInt(get(vs, k, is), 0, 16)
	return int32(n)
}
func Int32s(vs url.Values, k string, is ...int) (as []int32) {
	for i := range vs[k] {
		as = append(as, Int32(vs, k, i))
	}
	return
}
func Int64(vs url.Values, k string, is ...int) int64 {
	n, _ := strconv.ParseInt(get(vs, k, is), 0, 16)
	return n
}
func Int64s(vs url.Values, k string, is ...int) (as []int64) {
	for i := range vs[k] {
		as = append(as, Int64(vs, k, i))
	}
	return
}
func Uint(vs url.Values, k string, is ...int) uint {
	n, _ := strconv.ParseUint(get(vs, k, is), 0, 0)
	return uint(n)
}
func Uints(vs url.Values, k string, is ...int) (as []uint) {
	for i := range vs[k] {
		as = append(as, Uint(vs, k, i))
	}
	return
}
func Uint8(vs url.Values, k string, is ...int) uint8 {
	n, _ := strconv.ParseUint(get(vs, k, is), 0, 8)
	return uint8(n)
}
func Uint8s(vs url.Values, k string, is ...int) (as []uint8) {
	for i := range vs[k] {
		as = append(as, Uint8(vs, k, i))
	}
	return
}
func Uint16(vs url.Values, k string, is ...int) uint16 {
	n, _ := strconv.ParseUint(get(vs, k, is), 0, 16)
	return uint16(n)
}
func Uint16s(vs url.Values, k string, is ...int) (as []uint16) {
	for i := range vs[k] {
		as = append(as, Uint16(vs, k, i))
	}
	return
}
func Uint32(vs url.Values, k string, is ...int) uint32 {
	n, _ := strconv.ParseUint(get(vs, k, is), 0, 32)
	return uint32(n)
}
func Uint32s(vs url.Values, k string, is ...int) (as []uint32) {
	for i := range vs[k] {
		as = append(as, Uint32(vs, k, i))
	}
	return
}
func Uint64(vs url.Values, k string, is ...int) uint64 {
	n, _ := strconv.ParseUint(get(vs, k, is), 0, 64)
	return n
}
func Uint64s(vs url.Values, k string, is ...int) (as []uint64) {
	for i := range vs[k] {
		as = append(as, Uint64(vs, k, i))
	}
	return
}
func Float32(vs url.Values, k string, is ...int) float32 {
	f, _ := strconv.ParseFloat(get(vs, k, is), 32)
	return float32(f)
}
func Float32s(vs url.Values, k string, is ...int) (as []float32) {
	for i := range vs[k] {
		as = append(as, Float32(vs, k, i))
	}
	return
}
func Float64(vs url.Values, k string, is ...int) float64 {
	f, _ := strconv.ParseFloat(get(vs, k, is), 64)
	return f
}