読者です 読者をやめる 読者になる 読者になる

きょこみのーと

元六本木でGo書いてました。今はVRでGo書いてます。

Goのテンプレート言語egoを使ってみた

Go template go:generate

golangtext/template最近ようやく慣れてきたけど、 やっぱり{{}}が増えてくると辛いので、他のパッケージに手をだしてみました。

egoが触った中で一番しっくりきたのと、一通り色々なことができそうな気配を感じたので気に入りました。

benbjohnson/ego · GitHub

インストール

go getだけでOKです。

$ go get github.com/benbjohnson/ego

egoを呼び出すソースコード

ディレクトリ構成

├── main.go
└── templates
    └── sample.ego

templates/sample.egoは、ego用のtemplateファイル。拡張子.egoじゃないとダメです。

golang ego sample

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でも実行できます。参考