当前位置: 首页 > 面试题库 >

如何在Go模板中访问数组的第一个索引的值

滑弘扬
2023-03-14
问题内容

所以我有和html模板使用时,我得到对象

<div>Foobar {{ index .Doc.Users 0}}</div>

输出:

<div>Foobar {MyName my@email.com}</div>

我只想使用Name尝试了多次迭代但没有成功的领域:

{{ index .Doc.Users.Name 0}}
{{ index .Doc.Users 0 .Name}}
{{ .Name index .Quote.Clients 0}}
...

仅获取数组中第一个元素的.Name字段(.Doc.Users[0].Name)的正确语法是什么?


问题答案:

只需将表达式分组并应用.Name选择器:

<div>Foobar {{ (index .Doc.Users 0).Name }}</div>

这是一个可运行,可验证的示例:

type User struct {
    Name  string
    Email string
}

t := template.Must(template.New("").Parse(
    `<div>Foobar {{ (index .Doc.Users 0).Name }}</div>`))

m := map[string]interface{}{
    "Doc": map[string]interface{}{
        "Users": []User{
            {Name: "Bob", Email: "bob@myco.com"},
            {Name: "Alice", Email: "alice@myco.com"},
        },
    },
}

fmt.Println(t.Execute(os.Stdout, m))

输出(在Go Playground上尝试):

<div>Foobar Bob</div><nil>

<nil>最后的是的错误值template.Execute(),表示执行模板没有错误。)



 类似资料:
  • 问题内容: 我正在将数组传递给我的Django模板。我要访问的阵列中的阵列的各个元素(例如)等等,而不是通过整个阵列循环。 有没有办法在Django模板中做到这一点? 问题答案: 请记住,Django模板中的点符号用于Python中的四种不同符号。在模板中,可以表示以下任何一项: 它按此顺序尝试它们,直到找到匹配项。因此,你将获得列表索引,因为你的对象不是以3为键的dict,没有名为3的属性,也没

  • 问题内容: 我试图在把手模板内的数组中指定项的索引: 使用这个: 如果上述方法不可行,我将如何编写一个可以访问数组中特殊项目的助手? 问题答案: 尝试这个:

  • 问题内容: 说我有一个对象someObject: 还有一个模板助手,看起来像这样(并且工作正常): 我应该如何构造html以获取数组索引? 我试过了: 在这种情况下,成功返回和。哪个好 但是如何获取要放入属性的数组索引? 我直接尝试过,但未定义。我也尝试使用帮助器: 但是当我使用console.log退出此帮助程序时,我看到: 是否可以获取索引? 问题答案: 流星> = 1.2 空格键在1.2中获

  • 我只想在数组中的第一个元素上搜索对象,而忽略其余的元素。例如,对于下面的数据,如果我只想在中搜索数组中的第一个元素。 我知道我可以这样做一个嵌套查询,但这里的问题是所有的车辆都被搜索。我只希望车辆列表中的第0个元素被搜索,其余的被忽略。 理想情况下,我需要类似这样的东西来每次搜索列表中的第一辆车。有什么方法可以有效地做到这一点吗?

  • 如果我从问题中选择“q1”,我如何从答案中选择第一个数组? 这是我现在的代码:

  • 问题内容: 我有两个模板T1和T2。我想获取T1的输出,并在T2内对其进行一些额外的处理。我的问题是: 如何将T1的输出存储在T2的变量中?这有可能吗? 这是一些伪模板: 问题答案: 没有内置支持将模板结果存储在模板变量中,仅用于包含结果。 但是,您可以使用所需的任何复杂功能注册自定义功能。您可以注册一个函数,该函数将执行由其名称标识的模板,并且可以将结果返回为,可以将其存储在模板变量中。 这样做