【解决了一个小问题】golang gin框架中的模板,让模板中的参数不要做HTML转义

代码中使用了类似的方式来向模板填充参数:

c.HTML(200, "list.html", gin.H{"data":builder.String()})

模板中的语法大致如下:

<html>
   <h1>{{ .data }}</h1>
</html>

发现我输入的内容都做了HTML转义。
如何不转义呢?解决方法很简单:

import ("html/template")

c.HTML(200, "list.html", gin.H{"data":template.HTML(builder.String())})

同时也学会了一个技巧:
当参数是interface{}类型的时候,如何不增加额外的类型描述的参数来带入更多信息?
只需要重新定义一个类型,然后做强制类型转换就行

type HTML string
func foo(param interface{}){
    switch param.(type){
       case string:
           // html encode
       case HTML:
          // direct output
    }
}
foo(HTML("1234"))
原文地址:https://www.cnblogs.com/ahfuzhang/p/12786947.html