作用

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

用法

初始化

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#、

Text Templates相关推荐

  1. RequireJS和AMD规范

    目录 概述 define方法:定义模块 require方法:调用模块 AMD模式小结 配置require.js:config方法 插件 优化器r.js 参考链接 概述 RequireJS是一个工具库, ...

  2. oracle链接字符串java,java连Oracle连接字符串写法

    Android实例-调用系统APP(XE10+小米2) 相关资料:群号383675978 实例源码: unit Unit1; interface uses System.SysUtils, Syste ...

  3. 基于ArcGIS JS API封装dojo微件(以工具条为例)

    1.应用场景: 我们知道ArcGIS JS API自带了一些微件(或者说是控件),比如缩放按钮.定位按钮等等.但是有的时候这些微件的样式不太符合项目实际要求,或者是项目上想要把这些组合起来,这时候我们 ...

  4. What’s New in Entity Framework 4? API Changes(1)(转)

    If you have been working with the ADO.NET Entity Framework, you have probably been extremely eager t ...

  5. 前端编程提高之旅(六)----backbone实现todoMVC

                乐帝当年学习backbone时.最開始是看官网todoMVC的实现.后来了解到requireJS便于管理JS代码.就对官网代码做了requireJS管理.但此时乐帝感觉此时的t ...

  6. 【STM32】 keil软件工具--configuration详解(下)

    转载至:https://blog.csdn.net/ybhuangfugui/article/details/51501781 Ⅰ.写在前面 本文接着上一篇文章"Configuration( ...

  7. vuepress 代码高亮支持的语言

    VuePress 使用了 Prism 来为 markdown 中的代码块实现语法高亮.Prism 支持大量的编程语言,你需要做的只是在代码块的开始倒勾中附加一个有效的语言别名 Markup - mar ...

  8. 项目开发(Require + E.js)

    最近在做的几个项目,分别用了不同的框架跟方式,有个H5的项目,用了vue框架, 这个项目我还没有正式加入进去, 等手头的这个项目完成就可以去搞vue了, 现在手头的这个项目是一个招聘的项目, 用到了N ...

  9. 在 C# 中生成代码的四种方式——包括.NET 5中的Source Generators

    Microsoft在最新的C#版本中引入了Source Generator.这是一项新功能,可以让我们在代码编译时生成源代码.在本文中,我将介绍四种C#中的代码生成方式,以简化我们的日常工作.然后,您 ...

最新文章

  1. RabbitMQ安装与初始配置【转载】
  2. 【Java】 Base64原理及简单应用
  3. Boosted Tree:一篇很有见识的文章
  4. Java 数据结构(链表LinkedList增删改查、数组Vector、获取Vector最大值、交换Vector两成员位置、栈的实现、压栈出栈实现反转、队列Queue)
  5. 【炼丹技巧】指数移动平均(EMA)【在一定程度上提高最终模型在测试数据上的表现(例如accuracy、FID、泛化能力...)】
  6. 学习IDisposable,对于此中的不解……请高手指点
  7. CS229——NODE1part1
  8. sql中join类型_SQL Join类型概述和教程
  9. python基础作业_017--python基础作业
  10. 给你的页面加一个百度地图
  11. jsdroid 教程_2020年建筑行业资源近2000G免费建筑教程,分享给有需要的建筑同行
  12. 跟着小甲鱼学习C语言
  13. 如何更改win7开机启动画面
  14. Ubuntu 设置合上笔记本盖子不休眠的方法
  15. 苹果10.13.6,开机的时候经常会显示 禁止符号
  16. 非常口語化的英語單詞,短句
  17. mui 屏蔽手机物理返回按键(安卓+苹果)
  18. 关于将EXCEL文件导入到MYSQL数据库的一些方法
  19. eclipse中怎么快速切换窗口?
  20. BeagleBone Black 打开CAN总线

热门文章

  1. 码云 Push rejected: Push to bookShop/master was rejected
  2. 设计E-R图,E-R图转换成关系模式结构
  3. 愿手下有代码,眼中有星辰
  4. 2021-2027全球及中国APP配置软件行业研究及十四五规划分析报告
  5. 全新TFN FGT720A扫频仪
  6. wps全国计算机二级考试科目,可喜可贺,WPS Office成为NCRE二级单独考试科目
  7. TCP连接的建立与释放
  8. 蓝叠模拟器adb连接并配置网络代理
  9. 关于竞争上岗机制的操作流程
  10. Linux查看CPU和内存使用情况(ps、free、htop、atop、nmon、/proc/meminfo等)