在Go中是否有一种简单的方法来格式化字符串而不打印字符串?
我可以:
bar := "bar"
fmt.Printf("foo: %s", bar)
但是我希望返回格式化的字符串,而不是打印出来,这样我就可以进一步操作它。
我还可以这样做:
s := "foo: " + bar
但是,当格式字符串很复杂时,就很难读取,当一个或多个部分不是字符串,必须先转换时,就会很麻烦,比如
i := 25
s := "foo: " + strconv.Itoa(i)
有更简单的方法吗?
而不是使用模板。新的,你可以使用新的内置的
模板。模板:
package main
import (
"strings"
"text/template"
)
func format(s string, v interface{}) string {
t, b := new(template.Template), new(strings.Builder)
template.Must(t.Parse(s)).Execute(b, v)
return b.String()
}
func main() {
bar := "bar"
println(format("foo: {{.}}", bar))
i := 25
println(format("foo: {{.}}", i))
}