如何在 Golang 中对 URL 进行插值

我有以下 URL,我想更改start每次迭代的值。有没有更好的方法来做到这一点?


    test := "https://www.googleapis.com/customsearch/v1?start=%d&cx=001106611627702700888%3Aaonktv-oz_w&q=bells%20palsy%20mouth&exactTerms=palsy&fileType=png&imgColorType=color&imgType=face&searchType=image&key=AIzaSyAYqQ4IxUHnF7rfvzSvnczxQ-u93AbkC8k"


for v := 1; v < 100; v += 10 {

    val := fmt.Sprintf(test, v)

    fmt.Println(val)

}

现在输出: 

https://www.googleapis.com/customsearch/v1?start=1&cx=001106611627702700888%!A(MISSING)aonktv-oz_w&q=bells%!p(MISSING)alsy%!m(MISSING)outh&exactTerms=palsy&fileType=png&imgColorType=color&imgType=face&searchType=image&key=AIzaSyAYqQ4IxUHnF7rfvzSvnczxQ-u93AbkC8k


预期输出应该是: 

https://www.googleapis.com/customsearch/v1?startindex=1&q=bells%20palsy%20mouth

https://www.googleapis.com/customsearch/v1?startindex=11&q=bells%20palsy%20mouth


....等等。


为什么Sprintf给我(MISSING)和几个随机字符?


至尊宝的传说
浏览 189回答 1
1回答

哆啦的时光机

%不属于格式动词的字符应转义为%%:test&nbsp;:=&nbsp;"https://www.googleapis.com/customsearch/v1?start=%d&cx=001106611627702700888%%3Aaonktv-oz_w&q=bells%%20palsy%%20mouth&exactTerms=palsy&fileType=png&imgColorType=color&imgType=face&searchType=image&key=AIzaSyAYqQ4IxUHnF7rfvzSvnczxQ-u93AbkC8k"游乐场示例如果%未转义,则 fmt 期望找到相应的参数,并在找不到参数(MISSING)时输出抱怨。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go