Goのテンプレートでインデックス付き配列を指定する
Go言語のテンプレートで配列の添え字を指定するには、index 関数を使用します。
package main
import (
"os"
"text/template"
)
func main() {
tmpl := template.Must(template.New("").Funcs(template.FuncMap{
"index": func(arr []string, i int) string {
if i >= 0 && i < len(arr) {
return arr[i]
}
return ""
},
}).Parse(`{{ index .Arr 2 }}`))
data := struct {
Arr []string
}{
Arr: []string{"a", "b", "c"},
}
err := tmpl.Execute(os.Stdout, data)
if err != nil {
panic(err)
}
}
上記のコードではindexという自作関数が定義されており、文字列配列と整数引数を受け取って指定された添字の配列要素を返します。テンプレートで{{ index .Arr 2 }}という構文を使用してこの関数を呼び出し、配列Arrの添字を2に指定します。コードを実行すると、cという出力が得られます。