我是Go的新手。我一直在搜索文档。在以下游乐场代码中,它正在渲染并将其打印在屏幕上。我希望将渲染的文本存储在字符串中,以便可以从函数中返回它。
package main
import (
"os"
"text/template"
)
type Person struct {
Name string //exported field since it begins with a capital letter
}
func main() {
t := template.New("sammple") //create a new template with some name
t, _ = t.Parse("hello {{.Name}}!") //parse some content and generate a template, which is an internal representation
p := Person{Name:"Mary"} //define an instance with required field
t.Execute(os.Stdout, p) //merge template ‘t’ with content of ‘p’
}
https://play.golang.org/p/-qIGNSfJwEX
如何做到?
答案 0 :(得分:1)
只需将其渲染到内存缓冲区中,例如bytes.Buffer
,就可以通过调用其Bytes.String()
方法以string
的形式获取其内容:
buf := &bytes.Buffer{}
if err := t.Execute(buf, p); err != nil {
panic(err)
}
s := buf.String()
fmt.Println(s)
这将再次打印(在Go Playground上尝试):
hello Mary!
但这一次是s
字符串变量的值。