fmt.Sprint()返回不正确的结果

时间:2017-11-30 10:04:42

标签: go printf

我需要在里面创建一个带有html链接的字符串。

fmt.Sprint("<a href=\"%s\">%s</a>", "/myUrl", "link text");

预期结果是

<a href="/myUrl">link text</a>

但实际结果是

<a href="%s">%s</a>/myUrllink text

我做错了什么?

顺便说一下,我在GoLand中有这个警告

enter image description here

2 个答案:

答案 0 :(得分:6)

fmt.Sprint将按原样打印字符串。如果要格式化字符串,则应使用fmt.Sprintf

SO社区对初学者来说可能非常苛刻,如果人们不喜欢你所写的内容或你如何表达你将被投票的问题。不要欺骗自己以为人们会来帮忙,他们只关心声誉。

幸运的是,在Go中,我们非常善良docs。如果您认为某些内容无法正常运行,那么浏览文档网站就足以让您前进。

答案 1 :(得分:1)

func Sprintf

func Sprintf(format string, a ...interface{}) string

Sprintf根据格式说明符进行格式化并返回结果字符串。

func Sprint

func Sprint(a ...interface{}) string

Sprint格式使用其操作数的默认格式并返回结果字符串。当两者都不是字符串时,在操作数之间添加空格。

同样fmt是一个非常大且非常有用的标准包,附带了很好的文档。您可以找到许多不同的I / O函数there

如果您没有阅读文档,写“错误的结果”也是非常奇怪的。