Text Templates

作用

模版是静态文本和动作的混合体,用于动态插入内容。

用法

初始化

t := template.New("template_name")
t, err := t.Parse("template_text")
if err != nil {
	panic(err)
}

或者

t := template.New("template_name")
t = template.Must(t.Parse("template_text"))

template.Must方法实现了error判断和panic。

实现一个辅助方法用于创建模版:

CreateTemplate := func(name, text string) *template.Template {
	return template.Must(template.New(name).Parse(text))
}

变量展示

t := CreateTemplate("t", "Value is {{.}}\n")
t.Execute(os.Stdout, "some text")
t.Execute(os.Stdout, 5)
t.Execute(os.Stdout, []string{
	"Go",
	"Rust",
	"C++",
	"C#",
})

Value: some text
Value: 5
Value: [Go Rust C++ C#]

键值对展示

t := CreateTemplate("t", "Name: {{.Name}}\n")
t.Execute(os.Stdout, struct {
	Name string
}{"Jane Doe"})
t.Execute(os.Stdout, map[string]string{
	"Name": "Mickey Mouse",
})

Name: Jane Doe
Name: Mickey Mouse

逻辑展示

t := CreateTemplate("t", "{{if . -}} yes {{else -}} no {{end}}\n")
t.Execute(os.Stdout, "not empty")
t.Execute(os.Stdout, "")

yes
no

遍历展示

t := CreateTemplate("t", "Range: {{range .}}{{.}}、{{end}}\n")
t.Execute(os.Stdout, []string{
	"Go",
	"Rust",
	"C++",
	"C#",
})

Range: Go、Rust、C++、C#、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值