【Go言語】html/templateパッケージの使い方メモ
メモ
template.Template
型のstructを扱う- Newなどして得る
- Parseメソッドでテンプレート部分を解釈させる
- Executeで変数を当て込める
サンプル
package main import "html/template" import "fmt" import "bytes" func main() { // *template.Templateのオブジェクトをつくる foo := template.New("foo") // テンプレート文字列を食わせる foo.Parse("<b>{{.hoge}}</b>") // io.Writerインターフェースを満たした何かを準備する var buf1 bytes.Buffer // たとえばこれがhttp.ResponseWriterなら、 // そのままレスポンスに流し込めるということなので良い感じ // データを当てる foo.Execute(&buf1, map[string]string{"hoge":"ほげえ"}) // 結果をstringで得る fmt.Println(buf1.String()) // 以下は、当てるデータはstructでもいいよという話 type Person struct { Name string Age int } bar, _ := template.New("bar").Parse("<h1>{{.Name}}</h1><span>{{.Age}}さい</span>") yukarin := &Person{"たむらゆかりさん",17} var buf2 bytes.Buffer bar.Execute(&buf2, yukarin) fmt.Println(buf2.String()) }
Playground : Go Playground
雑感
- がんばる
DRY