■
golangのテンプレート(例えば text/template)では、FuncMapを使うことで好きな関数を実行できます。ので練習がてら簡単な計算機を作ってみます:
package example_test import ( "bytes" "fmt" "log" "text/template" ) func ExampleTemplateCalculator() { funcMap := template.FuncMap{ "add": func(a, b int) int { return a + b }, "sub": func(a, b int) int { return a - b }, "mul": func(a, b int) int { return a * b }, "div": func(a, b int) int { return a / b }, } var buf bytes.Buffer tp := template.Must(template.New("calculator").Funcs(funcMap).Parse("{{mul (div (sub 3 (add 1 4)) 2) -10}}")) err := tp.Execute(&buf, nil) if err != nil { log.Fatal(err) } fmt.Println(buf.String()) // Output: // 10 }
playgroundはこちら: http://play.golang.org/p/iYlS-L4qQZ