Доступ к определенным индексам массива с помощью библиотеки шаблонов go - PullRequest
1 голос
/ 10 октября 2010

Скажите, у меня есть такая структура данных:

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

И я заполняю его так, чтобы в баре было 3 элемента. Теперь, используя библиотеку template, как я могу получить доступ, например, к третьему элементу FooBar в этом срезе? Я пробовал следующее безуспешно:

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

Теперь я знаю, что могу использовать {.repeated section Foo.Bar} {FooBar} {.end}, но это дает мне значение foobar для каждого элемента, а не просто конкретного. Я гуглил и спросил по irc безрезультатно ...

Ответы [ 2 ]

3 голосов
/ 28 июня 2012

Использование новых text/template или html/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 голос
/ 11 октября 2010

Я вполне уверен, что это просто невозможно.Возможно, есть способ, которым вы могли бы реструктурировать свои данные так, чтобы все они были именованными полями.

Или просто написать больше логики в вашем реальном приложении.Я думаю, что индексирование массива выходит за рамки пакета шаблонов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...