首页 > 后端开发 > Golang > 如何在 Go 模板中访问数组第一个索引的值?

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

Susan Sarandon
发布: 2024-11-07 06:15:03
原创
240 人浏览过

How to Access the Value of the First Index of an Array in Go Templates?

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

在 Go 中使用 HTML 模板时,您可能会遇到挑战访问模板内嵌入的数组的第一个索引的值。考虑以下模板代码:

<div>Foobar {{ index .Doc.Users 0 }}</div>
登录后复制

在这里,您的目标是获取“Doc.Users”切片中第一个元素的“Name”字段的值。但是,使用不同语法的多次尝试均未成功。

检索“Doc.Users”数组中第一个元素的“Name”字段的正确语法是:

<div>Foobar {{ (index .Doc.Users 0).Name }}</div>
登录后复制

为了理解这个语法,让我们分解它:

  • index .Doc.Users 0:这部分从“Doc.Users”切片中检索第一个元素。
  • (index . Doc.Users 0):将前一个表达式的结果括起来,将其视为单个值。
  • 。名称:此选择器访问从前一个表达式获取的值的“名称”字段。

通过对表达式进行分组并应用选择器,您可以有效地访问所需的“名称”字段。

以下是您可以运行来测试此解决方案的示例代码:

package main

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

type User struct {
    Name  string
    Email string
}

func main() {
    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: "[email protected]"},
                {Name: "Alice", Email: "[email protected]"},
            },
        },
    }

    fmt.Println(t.Execute(os.Stdout, m))
}
登录后复制

此代码将产生以下输出,演示成功访问“Doc.Users”切片中第一个用户的“Name”字段:

<div>Foobar Bob</div>
登录后复制

以上是如何在 Go 模板中访问数组第一个索引的值?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板