Golang 自定义函数模版

系统自带模版函数太简单了,不足以应付日常应用,比如连基本的加减乘除算法都没有,不能都算好了带到模版吧,数据结构就错乱了。一个好的码农肯定不会这么做的,你是这样的吗。

三种场景介绍

  • html内容从程序带到模版会显示什么样呢,先看下图  


程序中写的是<p>12345abc</p>,输出到浏览器显示后没有转译,怎么解决呢?

funcMap := template.FuncMap{
   //把普通文本转化为html格式
   "html": func(content string) template.HTML {
      return template.HTML(content)
   },
}

完整代码

funcMap := template.FuncMap{
   //把普通文本转化为html格式
   "html": func(content string) template.HTML {
      return template.HTML(content)
   },
}
t, _ := template.ParseFiles("index.html")
t.Funcs(funcMap)
content:="<p>12345abc</p>"
t.Execute(w, content)
  • 加减乘除基本函数

funcMap := template.FuncMap{
   //加法函数
   "add": func(a1, a2 int) int {
      return a1 + a2
   },
   //减法函数
   "sub": func(a1, a2 int) int {
      return a1 - a2
   },
   //乘法函数
   "multi": func(a1, a2 float32) float32 {
      return a1 * a2
   },
   //除法函数
   "div": func(a1, a2 float32) float32 {
      return a1 / a2
   },
}