本文實例講述了go語言template用法。分享給大家供大家參考。具體分析如下:
golang的template包很好用,做一些復(fù)雜的文本格式生成太有幫助了,生成網(wǎng)頁也是很不錯的,使用起來非常方便
復(fù)制代碼 代碼如下:
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":"https://www.jb51.net/", "latlng":Latlng{24.1, 135.1}})
data = append(data, template.FuncMap{"name":"dotcoo2", "url":"https://www.jb51.net/", "latlng":Latlng{24.2, 135.2}})
data = append(data, template.FuncMap{"name":"dotcoo2", "url":"https://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語言程序設(shè)計有所幫助。
您可能感興趣的文章:- Go語言多值替換的HTML模板實例分析
- golang解析xml的方法
- golang簡單獲取上傳文件大小的實現(xiàn)代碼
- golang的HTTP基本認證機制實例詳解
- golang簡單tls協(xié)議用法完整示例
- golang網(wǎng)絡(luò)socket粘包問題的解決方法
- golang判斷chan channel是否關(guān)閉的方法
- golang模板template自定義函數(shù)用法示例