go语言template用法实例
程序员文章站
2022-07-05 11:17:23
本文实例讲述了go语言template用法。分享给大家供大家参考。具体分析如下:
golang的template包很好用,做一些复杂的文本格式生成太有帮助了,生成网页也是...
本文实例讲述了go语言template用法。分享给大家供大家参考。具体分析如下:
golang的template包很好用,做一些复杂的文本格式生成太有帮助了,生成网页也是很不错的,使用起来非常方便
复制代码 代码如下:
package main
import (
"fmt"
"os"
"text/template"
)
type latlng struct {
lat float32
lng float32
}
func (latlng latlng) string() string {
return fmt.sprintf("%g/%g", latlng.lat, latlng.lng)
}
func main() {
data := []template.funcmap{}
data = append(data, template.funcmap{"name":"dotcoo1", "url":"//www.jb51.net/", "latlng":latlng{24.1, 135.1}})
data = append(data, template.funcmap{"name":"dotcoo2", "url":"//www.jb51.net/", "latlng":latlng{24.2, 135.2}})
data = append(data, template.funcmap{"name":"dotcoo2", "url":"//www.jb51.net/", "latlng":latlng{24.3, 135.3}})
datatpl := `{{range .}}{{template "user" .}}{{end}}`
usertpl := `{{define "user"}}name:{{.name}}, url:{{.url}}, latlng:{{.latlng}} lat:{{.latlng.lat}} lng:{{.latlng.lng}}
{{end}}`
tpl, err := template.new("data").parse(datatpl)
if err != nil {
panic(err)
}
_, err = tpl.parse(usertpl)
if err != nil {
panic(err)
}
err = tpl.execute(os.stdout, data)
if err != nil {
panic(err)
}
println()
}
import (
"fmt"
"os"
"text/template"
)
type latlng struct {
lat float32
lng float32
}
func (latlng latlng) string() string {
return fmt.sprintf("%g/%g", latlng.lat, latlng.lng)
}
func main() {
data := []template.funcmap{}
data = append(data, template.funcmap{"name":"dotcoo1", "url":"//www.jb51.net/", "latlng":latlng{24.1, 135.1}})
data = append(data, template.funcmap{"name":"dotcoo2", "url":"//www.jb51.net/", "latlng":latlng{24.2, 135.2}})
data = append(data, template.funcmap{"name":"dotcoo2", "url":"//www.jb51.net/", "latlng":latlng{24.3, 135.3}})
datatpl := `{{range .}}{{template "user" .}}{{end}}`
usertpl := `{{define "user"}}name:{{.name}}, url:{{.url}}, latlng:{{.latlng}} lat:{{.latlng.lat}} lng:{{.latlng.lng}}
{{end}}`
tpl, err := template.new("data").parse(datatpl)
if err != nil {
panic(err)
}
_, err = tpl.parse(usertpl)
if err != nil {
panic(err)
}
err = tpl.execute(os.stdout, data)
if err != nil {
panic(err)
}
println()
}
希望本文所述对大家的go语言程序设计有所帮助。
上一篇: Mysql一些复杂的sql语句(查询与删除重复的行)
下一篇: Makefile 基础语法