我这里主要记录项目开发中有关text/template中不容易在官方文档中找的使用方法,官方文档中的examples中可以直接找到的不再赘述
将渲染后的文本输出到变量
template的execute方法第一个参数类型时io.Writer,只要是实现此方法的类型都可以,比如os.Stdout、*os.File、*bytes.buffer
package main
import (
"bytes"
"fmt"
"text/template"
)
type User struct {
Name string
Age int
}
const Temp = `My name is {{.Name}}
My age is {{.Age}}
`
func main() {
t, err := template.New("user").Parse(Temp)
if err != nil {
fmt.Print(err)
}
// buffer不需要初始化
var buf bytes.Buffer
err = t.Execute(&buf, User{"bcc", 18})
if err != nil {
fmt.Print(err)
}
v := buf.String()
fmt.Print(v)
}
输出
My name is bcc
My age is 18