在url中将Integer转换为String.Query().使用字符串函数设置



这是我使用goLang的第一天,我目前正在尝试使用数据,但遇到了一个错误,那就是将整数转换为字符串

func createLink(title string, page int) string {
url := url.URL{
Scheme: "https",
Host:   "jsonmock.hackerrank.com",
Path:   "/api/movies/search/",
}
query := url.Query()
query.Set("page", string(page))
query.Set("title", title)
url.RawQuery = query.Encode()
return url.String()
}

您可以尝试该代码,结果是实际结果:

https://jsonmock.hackerrank.com/api/movies/search/?page=%01&title=spiderman

预期结果:

https://jsonmock.hackerrank.com/api/movies/search/?page=1&title=spiderman

有%01,这是我不想要的东西。我认为我把整数转换成字符串时犯了一个错误

您应该使用strconv。Itoa((方法将整数格式化为字符串。这在链接的答案中得到了更好的解释。为了完整起见,以下是您在结果中使用%01的方法:

  • 首先,int1得到"普通转换的";按照以下转换规则转换为字符串:

将有符号或无符号整数值转换为字符串类型会产生包含整数的UTF-8表示形式的字符串。价值观在有效Unicode代码点范围之外的代码点被转换为"\uFFFD";。

  • 然后得到的字符串(unicode代码点的字符等于1(得到URL编码,最后以%01作为其表示

顺便说一句,如果你对你的代码进行审查,就会收到警告:

hello.go:19:20:从int到string的转换产生一个字符串符文,而不是一串数字(你是说fmt.Sprint(x(吗?(

虽然这并不总是给你关于如何修复错误的最佳建议,但它至少把你推向了正确的方向。强烈建议从学习语言的第一天起就习惯进行这种(或类似的(检查。

最新更新