[Go] go语言 template 例子 →→→→→进入此内容的聊天室

来自 , 2021-03-02, 写在 Go, 查看 115 次.
URL http://www.code666.cn/view/54c3d58c
  1. package main
  2.    
  3. import (
  4.     "fmt"
  5.     "os"
  6.     "text/template"
  7. )
  8.    
  9. type Latlng struct {
  10.     Lat float32
  11.     Lng float32
  12. }
  13.    
  14. func (latlng Latlng) String() string {
  15.     return fmt.Sprintf("%g/%g", latlng.Lat, latlng.Lng)
  16. }
  17.    
  18. func main() {
  19.     data := []template.FuncMap{}
  20.     data = append(data, template.FuncMap{"name":"dotcoo1", "url":"http://www.dotcoo.com/", "latlng":Latlng{24.1, 135.1}})
  21.     data = append(data, template.FuncMap{"name":"dotcoo2", "url":"http://www.dotcoo.com/", "latlng":Latlng{24.2, 135.2}})
  22.     data = append(data, template.FuncMap{"name":"dotcoo2", "url":"http://www.dotcoo.com/", "latlng":Latlng{24.3, 135.3}})
  23.    
  24.     datatpl := `{{range .}}{{template "user" .}}{{end}}`
  25.     usertpl := `{{define "user"}}name:{{.name}}, url:{{.url}}, latlng:{{.latlng}} lat:{{.latlng.Lat}} lng:{{.latlng.Lng}}
  26. {{end}}`
  27.    
  28.     tpl, err := template.New("data").Parse(datatpl)
  29.     if err != nil {
  30.         panic(err)
  31.     }
  32.     _, err = tpl.Parse(usertpl)
  33.     if err != nil {
  34.         panic(err)
  35.     }
  36.    
  37.     err = tpl.Execute(os.Stdout, data)
  38.     if err != nil {
  39.         panic(err)
  40.     }
  41.    
  42.     println()
  43. }
  44. //go/4381

回复 "go语言 template 例子"

这儿你可以回复上面这条便签

captcha