質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Q&A

解決済

1回答

1131閲覧

golangテンプレートでループを回したい

退会済みユーザー

退会済みユーザー

総合スコア0

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

0グッド

0クリップ

投稿2018/08/28 13:50

編集2018/08/28 13:59

Go言語初心者です。

ExecuteTemplateで100個の要素のimgタグを表示したいのですが、うまくいきません。
同ディレクトリにimgというディレクトリがあり、その中にimage_1.pngからimage_100.pngまでの100枚の画像があります。

goで書いたサーバーをローカルで立て、ブラウザ上に画像を以下のように表示させたいです。

tpl

1<img src="img/image_1.png"/> 2<img src="img/image_2.png"/> 3<img src="img/image_3.png"/> 4<img src="img/image_4.png"/> 5<img src="img/image_5.png"/> 6<img src="img/image_6.png"/> 7<img src="img/image_7.png"/> 8・・・ 9<img src="img/image_100.png"/>

ここで、ExecuteTemplateの第3引数で、なにかしらの配列を渡す例しか見つけられず、100回ループを回す方法がわかりません。

go

1func init() { // この辺の書き方がわかりません 2 var err error 3 image, err = ioutil.ReadFile("./image.png") 4 if err != nil { 5 panic(err) 6 } 7} 8 9 10 11func handlerHtml(w http.ResponseWriter, r *http.Request) { 12 t := template.Must(template.ParseFiles("index.html.tpl")) 13 if err := t.ExecuteTemplate(w, "index.html.tpl", []int{1, 2, 3}); err != nil { // この辺の書き方もわかりません 14 log.Fatal(err) 15 } 16}

どなたか、ご存知の方がいらっしゃればご教示願います。
よろしくおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんな感じでどうでしょうか。

https://play.golang.org/p/CsDf9xKYMbM

go

1package main 2 3import ( 4 "html/template" 5 "os" 6) 7 8const tmpl = ` 9{{ range $v := repeat 100 }} 10<img src="img/image_{{$v}}.png">{{end}} 11` 12 13var funcs = template.FuncMap{ 14 "repeat": func(n int) []int { 15 var res []int 16 for i := 0; i < n; i++ { 17 res = append(res, i+1) 18 } 19 return res 20 }, 21} 22 23func main() { 24 tmpl := template.Must(template.New("").Funcs(funcs).Parse(tmpl)) 25 tmpl.Execute(os.Stdout, map[string]interface{}{ 26 "repeate": make([]struct{}, 100), 27 }) 28}

投稿2018/08/29 05:23

nobonobo

総合スコア3367

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問