Concat Go模板中的预定义字符串和变量

问题描述 投票:0回答:1

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

go
1个回答
3
投票

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

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

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

我明白了:

%!s(int64=1006608996216725456)

你应该在你的%d中使用printf或者传递一个字符串ID

© www.soinside.com 2019 - 2024. All rights reserved.