我有以下网址,我想为每次迭代更改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)
以及几个随机字符?
答案 0 :(得分:2)
不属于格式谓词的%
个字符应转义为%%
:
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"
如果%
未被转义,则fmt期望找到相应的参数,并在未找到参数时使用输出(MISSING)
进行投诉。