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)`
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】