Golang tmpl语法简介

背景: go语言可以采用tmpl模板来生成许多代码 , 可以加速开发效率

text/template 和 html/template 是 Golang 标准库提供的两个数据驱动的模板库,通常被用于文本生成和 HTML 生成。本文将介绍 Golang 模板库的语法和使用。

简单的例子 

// 构建模板
tmpl, err := template.New("").Parse("你好,{
  { . }}")
if err != nil {
    panic(err)
}

// 输出文本, 最终输出 "你好,Weicong"
err = tmpl.Execute(os.Stdout, "Weicong")
if err != nil {
    panic(err)
}

上图是一个简单tmpl 例子 采用了 { { . }} 作为变量占位符

文本和空白

在模板文本中,一切动态的内容和判断代码块均使用 { {  和 }} 包括起来,比如上述的示例 { { . }},在 { {  和 }} 之外的文本均会被原封不动地拷贝到输出中。

为了方便格式化模板源代码,还额外提供了 { {- 和 -}} 两种语法,可以将代码块前或代码块后的空白字符均移除。空白字符包括空格符、换行符、回车符、水平制表符。

{
  { 12 }} < {
  { 34 }}   {
  {/* => 12 < 34 */}}
{
  { 12 }} < {
  {- 34 }}  {
  {/* => 12 <34 */}}
{
  { 12 -}} < {
  { 34 }}  {
  {/* => 12< 34 */}}
{
  { 12 -}} < {
  {- 34 }} {
  {/* => 12<34 */}}

注释

模板文本中可以使用 { {/* xxx */}} 记录相关注释,注释不会被最终生成到文本中。但是需要注意的,注释前后的空格和换行均会保留,如果需要去除也可以使用 { {- 和 -}}

传入复杂数据结构

前面的例子中 我们使用 { { . }} 输入了一个变量,这里的 . 表示当前作用域的对象值。

传入对象也可以传入一个更复杂的结构体。

type Params struct {
	UserName string
	SiteName string
}

tmpl, _ := template.New("").Parse("你好,这里是{
  { .UserName }}的{
  { .SiteName }}。")
_ 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值