go - 如何在 Golang 中对 URL 进行插值

标签 go

我有以下 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) 和几个随机字符?

最佳答案

不属于格式动词的 % 字符应转义为 %%:

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"

playground example

如果 % 未转义,则 fmt 期望找到相应的参数,并在未找到参数时提示输出 (MISSING)

关于go - 如何在 Golang 中对 URL 进行插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36700291/

相关文章:

go - 如何优雅地检查三个值的相等性?

Golang 检查数据是否为 ​​time.Time

arrays - 如何在 Go 中创建一个 map[string] [2]int?

concurrency - 等待 n 个 goroutine 终止

go - 用 n 个元素的数组初始化结构

go - 所有可能的 GOOS 值?

go - 从视频字节获取帧

c++ - 当对字段使用不同的值时,Protobuf 序列化长度不同

dataframe - 使用 gota ReadCSV 时跳过行

memory - 如果字段顺序不同,则结构具有不同的大小