这是我使用 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 ,这是我不想要的。我相信我在将整数转换为字符串时犯了一个错误
1 回答
一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
您应该使用strconv.Itoa()方法将整数格式化为字符串。这在链接的答案中得到了更好的解释。为了完整起见,以下是您最终%01的结果:
首先, int
1通过遵循以下转换规则将“普通转换”为字符串:
将有符号或无符号整数值转换为字符串类型会生成一个包含整数的 UTF-8 表示形式的字符串。超出有效 Unicode 代码点范围的值将转换为“\uFFFD”。
然后生成的字符串(unicode 代码点的字符等于 1)得到URL-encoded,最终
%01作为它的表示。
作为旁注,如果您对代码运行go vet ,则会收到有关此警告:
hello.go:19:20:从 int 到 string 的转换产生一串一个符文,而不是一串数字(你的意思是 fmt.Sprint(x) 吗?)
虽然这并不总是为您提供有关如何修复错误的绝对最佳建议,但它至少将您推向了正确的方向。强烈建议从学习语言的第一天开始就习惯运行这种(或类似的)检查的想法。
- 1 回答
- 0 关注
- 190 浏览
添加回答
举报
0/150
提交
取消
