前言
文本模板是大家平时经常用的 , 例如服务端渲染,代码生成工具. 在我看来模板就是程序. 模板引擎就是编程语言, 渲染模板就是运行程序. 本文主要梳理了模板引擎作为一种特殊的编程语言提供了哪些接口(语法)使得开发人员可以灵活的编写模板以实现自己的需求一、模板语法
模板引擎作为一种简易的编程语言, 需要提供以下语法
- 运行时输入
- 变量定义/使用
- 表达式
- 循环
- 判断
- 封装
- 注释
模板与编程语言的一大区别是代码和数据和在一起的,所以要提供接口(语法)区分代码的数据的
二、示例
1. Golang标准库模板
代码如下(示例):
- 模板标签
{
{ }}
- 输入
go模板接受单个输入
通过{ { . }}
获取输入
支持的所有的go类型Slice
,int64
,int
,string
,float32
,float64
如果输入是一个Struct
/Map
可以通过{ {.Field}}
获取其属性
package main
import (
"fmt"
"os"
"text/template"
)
func main() {
t, _ := template.New("tpl").Parse(`{
{ . }}`)
fmt.Println(t.Execute(os.Stdout, "hello world"))
t, _ = template.New("tpl").Parse(`{
{ .Name