Goのテンプレート言語egoを使ってみた
golangのtext/template最近ようやく慣れてきたけど、
やっぱり{{}}が増えてくると辛いので、他のパッケージに手をだしてみました。
egoが触った中で一番しっくりきたのと、一通り色々なことができそうな気配を感じたので気に入りました。
インストール
go getだけでOKです。
$ go get github.com/benbjohnson/ego
egoを呼び出すソースコード
ディレクトリ構成
├── main.go
└── templates
└── sample.ego
templates/sample.egoは、ego用のtemplateファイル。拡張子.egoじゃないとダメです。
egoを実行する
$ ego -package main templates
実行するとego.goが作成される。*1
├── ego.go
├── main.go
└── templates
└── sample.ego
go runで実行する
$ go run main.go ego.go
## Titleを表示
test
## Titleをローカル変数titleに代入して表示
title = test
## FooListをfor文で回して表示
abc ローカル変数のスコープ = test
def ローカル変数のスコープ = test
ghi ローカル変数のスコープ = test
foo ローカル変数のスコープ = test
## FooMapをfor文で回してkeyとvalueを表示
キー: a 値: 111 ローカル変数のスコープ = test
キー: b 値: 222 ローカル変数のスコープ = test
キー: c 値: 333 ローカル変数のスコープ = test
*1: go:generateでも実行できます。参考