我是新来的。我一直在搜索文档。在下面的游乐场代码中,它正在屏幕上渲染和打印它。我希望将呈现的文本存储在字符串中,以便我可以从函数中返回它。package mainimport ( "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怎么做 ?
1 回答
Helenr
TA贡献1780条经验 获得超4个赞
只需将其呈现到内存缓冲区中,例如bytes.Buffer
(或strings.Builder
在 Go 1.10 中添加),您可以通过string
调用其Bytes.String()
(or Builder.String()
) 方法获取其内容:
buf := &bytes.Buffer{}
if err := t.Execute(buf, p); err != nil {
panic(err)
}
s := buf.String()
fmt.Println(s)
hello Mary!
但这次是s
字符串变量的值。
使用strings.Builder()
,你只需要改变这一行:
buf := &strings.Builder{}
在Go Playground试试这个。
- 1 回答
- 0 关注
- 65 浏览
添加回答
举报
0/150
提交
取消