我正在尝试在Go模板中构建一个链接。我希望我的对象ID与单词连接以形成动态网址。
当我在页面上打印{{.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。
答案 0 :(得分:3)
(转义)%!s...
表示传递给printf
的参数不是字符串。它甚至会告诉你数据类型。
例如,如果我运行以下内容:
fmt.Printf("%s", int64(1006608996216725456))
我明白了:
%!s(int64=1006608996216725456)
您应该在%d
中使用printf
或传递字符串ID
。