使用go模板库访问特定的数组索引

时间:2010-10-10 04:06:30

标签: templates go

假设我有这样的数据结构:

type Foo struct {
  Bar []struct {
    FooBar string
  }
}

我填充它使得Bar有3个元素。现在,使用template库,我如何访问该片段中的第3个元素FooBar?我试过以下但没有成功:

{Foo.Bar[2].FooBar}
{Foo.Bar.2.FooBar}

现在,我知道我可以使用{.repeated section Foo.Bar} {FooBar} {.end},但这给了我每个元素的foobar值,而不仅仅是特定的元素。我用谷歌搜索并询问irc无济于事......

2 个答案:

答案 0 :(得分:3)

使用新的text/templatehtml/template

package main

import (
    "fmt"
    "text/template" // or html/template
    "os"
)

func main() {
    tmpl, err := template.New("name").Parse("{{index . 0}}")
    if err != nil {
        fmt.Println(err)
        return
    }
    tmpl.Execute(os.Stdout, []string{"yup, that's me", "not that!"})
}

答案 1 :(得分:1)

我很确定这是不可能的。也许有一种方法可以重构您的数据,使其成为所有命名字段。

或者只是在实际应用程序中编写更多逻辑。数组索引有点超出了我想的模板包的范围。