文本模板:
package main
import (
"log"
"os"
"text/template"
)
type Student struct {
Name string
Age int
Sex string
Habbits []string
Normal string
}
const templ = `students:
{{range .}}-------------------------------------------------------------
Name: {{.Name}}
Age: {{.Age}}
Sex: {{.Sex}}
Habbits:{{range $_,$habbit := .Habbits}}{{$habbit | printf "%s\t"}}{{end}}
Normal: {{.Normal | addString}}{{printf "\n"}}
{{end}}`
var students = []Student{
{Name:"Marco", Age:19, Sex:"男", Habbits:[]string{"music", "sing", "write"}, Normal:"正常"},
{Name:"Mike", Age:20, Sex:"男", Habbits:[]string{"basketball","art"}, Normal:"正常"},
{Name:"Marry", Age:17, Sex:"女", Habbits:[]string{"art","sing","paino"}, Normal:"正常"},
}
func addString(normal string) string {
return normal + "模式"
}
func main() {
report, err := template.New("report").Funcs(template.FuncMap{"addString": addString}).Parse(templ)
if err != nil {
log.Fatal(err)
}
if err := report.Execute(os.Stdout,students); err != nil {
log.Fatal(err)
}
}
效果:
HTML模板
package main
import (
"os"
"html/template"
"log"
)
const templ = `<!DOCTYPE html>
<html>
<meta charset="utf-8"/>
<head>
<title>主頁</title>
</head>
<body>
<form>
<table align="center">
{{range .}}
<tr>
<td>Name:</td>
<td>{{.Name}}</td>
</tr>
<tr>
<td>Age:</td>
<td>{{.Age}}</td>
</tr>
<tr>
<td>Sex:</td>
<td>{{.Sex}}</td>
</tr>
<tr>
<td>Habbits:</td>
{{range $_, $habbit := .Habbits}}
<td>{{$habbit}}</td>
{{end}}
</tr>
<tr>
<td>{{.Normal | addString}}</td>
</tr>
{{end}}
</table>
</form>
<body>
</html>`
type Student struct {
Name string
Age int
Sex string
Habbits []string
Normal string
}
func addString(normal string) string {
return normal + "模式"
}
var students = []Student{
{Name:"Marco", Age:19, Sex:"男", Habbits:[]string{"sing", "write","basketball"},Normal:"正常"},
{Name:"Mike", Age:20, Sex:"男", Habbits:[]string{"basketball", "paino"},Normal:"正常"},
{Name:"Marry", Age:17, Sex:"女", Habbits:[]string{"art", "eat"},Normal:"正常"},
}
func main() {
report, err := template.New("report").Funcs(template.FuncMap{"addString": addString}).Parse(templ)
if err != nil {
log.Fatal(err)
}
if err := report.Execute(os.Stdout,students); err != nil {
log.Fatal(err)
}
}
————————————————
版權聲明:本文爲CSDN博主「RGBMarco」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/RGBMarco/article/details/78857211