Golang でお手軽にテキストテンプレート処理をする

More than 3 years have passed since last update.

漢なら golang で文字列テンプレート処理したいですね!

golang では text/template パッケージが標準で入っています.

http://golang.org/pkg/text/template/

でもサンプルを見ると構造体を作ってデータを流し込んでいてちょっと面倒ですね.

type Inventory struct {

Material string
Count uint
}
sweaters := Inventory{"wool", 17}
tmpl, err := template.New("test").Parse("{{.Count}} items are made of {{.Material}}")
if err != nil { panic(err) }
err = tmpl.Execute(os.Stdout, sweaters)
if err != nil { panic(err) }

python のように dictionary 的にデータを流しこみたいですね.

できました.

package main

import (
"fmt"
"bytes"
"text/template"
)

func main() {

d := make(map[string]string)
d["a"] = "muda"
d["b"] = "dora"
d["c"] = "bora"

const t = "{{.a}} = {{.b}} + {{.c}}\n"
tmpl, err := template.New("test").Parse(t)
if err != nil {
panic(err)
}

var doc bytes.Buffer
if err := tmpl.Execute(&doc, d); err != nil {
panic(err)
}
s := doc.String()

fmt.Printf("Result: %s", s)
}