一尘不染

格式化Go字符串而不打印?

go

是否有一种简单的方法可以在Go中格式化字符串而不打印字符串?

我可以:

bar := "bar"
fmt.Printf("foo: %s", bar)

但是我希望返回格式化的字符串而不是打印出来的字符串,以便我可以进一步处理它。

我也可以做类似的事情:

s := "foo: " + bar

但这在格式字符串很复杂时很难阅读,而在一个或多个部分不是字符串而必须首先转换的时候(例如,

i := 25
s := "foo: " + strconv.Itoa(i)

有没有更简单的方法可以做到这一点?


阅读 379

收藏
2020-07-02

共1个答案

一尘不染

Sprintf是您想要的。

fmt.Sprintf("foo: %s", bar)

您还可以在“ 错误”示例中看到它在使用中,作为“ A Tour of
Go”的一部分。

return fmt.Sprintf("at %v, %s", e.When, e.What)
2020-07-02