Concat在Go模板

时间:2017-12-30 11:12:19

标签: go

我正在尝试在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。

  

http://localhost:8000/wallet/1006608996216725456

1 个答案:

答案 0 :(得分:3)

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

例如,如果我运行以下内容:

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

我明白了:

%!s(int64=1006608996216725456)

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