做网站完整过程,在线商城怎么弄的,wordpress 阿里云cdn,如何制作完整网页Go 获取 URL 参数也很容易#xff0c;但是由于 Go 有严格的数据类型和错误管理#xff0c;所以在使用时会些微有些复杂。所以本文不仅会讲如何获取 URL 的参数#xff0c;也会讲在使用时的一些问题。
首先假设 URL 是https://www.example.com/?keywordabcid12。
其他…Go 获取 URL 参数也很容易但是由于 Go 有严格的数据类型和错误管理所以在使用时会些微有些复杂。所以本文不仅会讲如何获取 URL 的参数也会讲在使用时的一些问题。
首先假设 URL 是https://www.example.com/?keywordabcid12。
其他语言一般这个时候就是导入包了但是 Go 的包管理很严格所以建议你在输入完下列代码后在安装 VSCode 中使用保存快捷键如 Command S 键或者在终端中goimports工具来自动补全包这样就可以保证一定没有错误。因为虽然现在一般使用net/url或者net/http但某些情况可能不一样或者未来 Go 会对一些包进行改名这都会导致包的名称不一定所以“授人以鱼不如授人以渔”。
接下来需要使用url.Parse()来解析上面的 URL以及设置错误信息来方便 URL 解析出错的时候进行处理最后声明变量q来方便后续获取和操作参数
u, err : url.Parse(https://www.example.com/?keywordabcid12)
if err ! nil {log.Fatal(err)
}
q : u.Query()这里u.Query()会进行一个映射将参数名和值对应上由于可能会有多个相同的参数名所以这里的“键值对”的“值”是一个字符串数组。此时就可以通过q来获取参数了如下
fmt.Println(q[keyword])
fmt.Println(q[id])输出结果为
[abc]
[12]下面说说需要注意的几个问题
如何将参数字符串转换成整数
上文提到这里的q[keyword]或q[id]实际上是个字符串数组所以如果你想将上面id的值12当成整数进行操作那么就得使用下面的方式如果你有多个id参数的话那么就根据自己情况选择
id : strconv.Atoi(q[id][0])这时候变量id的值就是整数12。
判断是否有参数或有某个参数
一般参数的使用方法就是用来计算或判断但是如果我们要判断有没有参数部分或者有没有某个参数该怎么办呢
有两种方案 第一种是通过判断q或某个参数对应的值是否为空如下
//判断是否有参数
if q ! nil {...
}
//判断是否有id这个参数
if q[id] ! nil {...
}第二种是通过len()测量q或某个参数对应值的长度如下
//判断是否有参数
if len(q) ! 0 {...
}
//判断是否有id这个参数
if len(q[id]) ! 0 {...
}希望能帮到有需要的人