Go语言template相关知识
templeate三板斧
- 
创建模版: 模版文件以 .tmpl结尾, 文件的语法和html相同。
- 
解析模版 t, err := template.ParseFile("./filename.tmpl") if err != nil { //错误处理 }
- 
渲染模版 err = t.Execute(w, data) if err != nil { //错误处理 }Execute()函数第一个参数为ResponseWriter接口类型的值, 第二参数为传入模版的数据。
模版语法:
表示传入的数据
{{.}}
假如传入的是一个结构体或者map
{{.字段名称}}
{{.key名称}}
模版的注释
{{/*这是一个注释*/}}
变量
$opp := {{.}}
条件判断
{{if 条件}} body {{end}}
{{if 条件}} body {{else}} body {{end}}
{{if 条件}} body {{else if 条件}} body {{end}}
range
{{range 数组}} 数组值 {{end}}
常见的预定义函数
比较函数
eq		等价于: arg1 == 
lt		等价于: arg1 < arg2,
le		等价于: arg1 <= arg2
自定义函数
1. 首先自定义一个函数
kua := func(arg string) string {
	return "你好" + arg
}
2. 为模版添加一个函数
template.New().Funcs(传入一个函数).Parse()
修改模版语法
template.Delims("((", "))")
引入别的模版
{{template "base.tmpl"}}
{{define "content"}}
<div>Hello world</div>
{{end}}
模版继承
{{block "name" .}}{{end}}
继承别的模版
{{/*继承根模板*/}}
{{template "base.tmpl" .}}
{{/*重新定义块模板*/}}
{{define "content"}}
    <h1>这是home2页面</h1>
    <p>Hello {{ . }}</p>
{{end}}
如果继承别的模版需要换一个解析函数:
base.tmpl 是根模版, index.tmpl是子模版
`template.ParseFiles("./base.tmpl", "./index.tmpl")`
`err = t.ExecuteTemplate(w, "index.tmpl", msg)`
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号