抽空把go 的text/templete模板整理学习了,现在总结下。
步骤
1、定义数据类型
type Opt struct{Name stringAge intScore float32
}one := Opt{"xiao chao",26,90}
two := Opt{"xiao er",29,89}
2、建立模板
one_str := "one_str :my name is {{.Name}},and age is {{.Age}},my score is {{.Score}}."two_str := "two_str :my name is {{.Name}},and age is {{.Age}},my score is {{.Score}}."t1 := template.New("one1")t2 := template.New("two2")
3、解析模板
t1,_ = t1.Parse(one_str)t2,_ = t2.Parse(two_str)
4、执行模板
t1.ExecuteTemplate(os.Stdout,"one1",one)println("\n")t2.ExecuteTemplate(os.Stdout,"two2",two)
完整代码:
package mainimport ("os""text/template"
)
type Opt struct{Name stringAge intScore float32
}func main() {/*stu := Opt{"zhao zi long",30,99}tmpl, err := template.New("stu").Parse("hello, name:{{.Name}},age:{{.Age}},score:{{.Score}}") //建立一个模板,内容是"hello, {{.}}"//tmp2,err2 := template.New("").ExecuteTemplate()if err != nil { panic(err)} err = tmpl.Execute(os.Stdout, stu) //将string与模板合成,变量name的内容会替换掉{{.}} //合成结果放到os.Stdout里if err != nil {panic(err)} */one := Opt{"xiao chao",26,90}two := Opt{"xiao er",29,89}one_str := "one_str :my name is {{.Name}},and age is {{.Age}},my score is {{.Score}}."two_str := "two_str :my name is {{.Name}},and age is {{.Age}},my score is {{.Score}}."t1 := template.New("one1")t2 := template.New("two2")t1,_ = t1.Parse(one_str)t2,_ = t2.Parse(two_str)t1.ExecuteTemplate(os.Stdout,"one1",one)println("\n")t2.ExecuteTemplate(os.Stdout,"two2",two)
}