最初ちょっとやり方が分からなかったのでメモ。
やりたいことは、例えばgoで以下のような配列があったとき
type User struct { ID int Name string } type UserInfo struct { ID int Age int } users := []User{ User{ID: 1, Name: "taro"}, User{ID: 2, Name: "jiro"}, User{ID: 3, Name: "hanako"}, } infos := []UserInfo{ UserInfo{ID: 1, Age: 10}, UserInfo{ID: 2, Age: 20}, UserInfo{ID: 3, Age: 30}, }
ちょっと例が微妙ですが、users
とinfos
を同じindexでループを回したいようなことがあるかと思います。
goのtemplateでは、単独のループであれば
{{range $index, $user := Users}}
{{$user.Name}}
{{end}}
のように書けるのですが、もう一つの配列も同じようにループを回す場合には、以下のように書く必要があります。
{{range $index, $user := Users}}
{{$user.Name}}
{{(index $.Infos $index).Age}}
{{end}}
のindexを使って、ループ外部の変数の配列のindexを指定する感じです。