這是我使用 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 關注
- 108 瀏覽
添加回答
舉報
0/150
提交
取消