go語言template用法實例
更新時間:2015年02月24日 12:07:33 作者:不吃皮蛋
這篇文章主要介紹了go語言template用法,實例分析了template的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了go語言template用法。分享給大家供大家參考。具體分析如下:
golang的template包很好用,做一些復雜的文本格式生成太有幫助了,生成網(wǎng)頁也是很不錯的,使用起來非常方便
復制代碼 代碼如下:
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":"http://www.dhdzp.com/", "latlng":Latlng{24.1, 135.1}})
data = append(data, template.FuncMap{"name":"dotcoo2", "url":"http://www.dhdzp.com/", "latlng":Latlng{24.2, 135.2}})
data = append(data, template.FuncMap{"name":"dotcoo2", "url":"http://www.dhdzp.com/", "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":"http://www.dhdzp.com/", "latlng":Latlng{24.1, 135.1}})
data = append(data, template.FuncMap{"name":"dotcoo2", "url":"http://www.dhdzp.com/", "latlng":Latlng{24.2, 135.2}})
data = append(data, template.FuncMap{"name":"dotcoo2", "url":"http://www.dhdzp.com/", "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語言程序設(shè)計有所幫助。
相關(guān)文章
Go channel發(fā)送方和接收方如何相互阻塞等待源碼解讀
這篇文章主要為大家介紹了Go channel發(fā)送方和接收方如何相互阻塞等待源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12
Go語言resty http包調(diào)用jenkins api實例
這篇文章主要為大家介紹了Go語言resty http包調(diào)用jenkins api實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06
Go語言實現(xiàn)一個Http Server框架(二) Server的抽象
上一篇文章對http庫的基本使用做了說明,這篇文章主要介紹了如何實現(xiàn)一個簡單地httpServer,文中代碼示例非常詳細,感興趣的朋友可以參考下2023-04-04

