go - 在 Go 模板中连接预定义的字符串和变量

标签 go

我正在尝试在我的 Go 模板中构建一个链接。我希望将我的对象 ID 与单词连接起来以形成动态 url。

当我在页面上打印 {{.ID}} 时,我可以看到打印的正确 ID,我正在尝试像这样使用 Printf 构建 URL。

{{- $id := printf "/%s/%s" "wallet/" .ID -}}
        <a href={{$id}}><h1>Wallet ID {{.ID}}</h1></a>

在我的浏览器中显示为

http://localhost:8000/wallet//%25!s%28int=1006608996216725456%29

而不是下面应该看起来的样子。 ID为int类型。

http://localhost:8000/wallet/1006608996216725456

最佳答案

(转义的)%!s... 表示传递给 printf 的参数不是字符串。它甚至会告诉您数据类型。

例如,如果我运行以下命令:

fmt.Printf("%s", int64(1006608996216725456))

我得到:

%!s(int64=1006608996216725456)

您应该在 printf 中使用 %d 或传递字符串 ID

关于go - 在 Go 模板中连接预定义的字符串和变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48033366/

相关文章:

json - 有没有办法让 json.Unmarshal() 根据 "type"属性选择结构类型?

php - 是否有将PHP函数与Go版本进行比较的引用?

go - 如何为 Go 中的所有请求创建一个通用函数?

multithreading - 半异步代码逻辑

go - 如何在golang中查找sshd服务状态

mongodb - 如何使用 go map 从 mongodb 检索非结构化形式的数据

go - 如何使用谷歌云平台的 Go SDK 获取项目元数据?

go - chromedp上的网络使用情况

arrays - Go 的 sync.pool 可以用于数组/slice 吗?

hadoop - 用于 Hadoop Streaming 的 Go 客户端