首页 >后端开发 >Golang >如何在 Go 模板中访问数组中第一个元素的名称字段?

如何在 Go 模板中访问数组中第一个元素的名称字段?

Barbara Streisand
Barbara Streisand原创
2024-11-08 11:51:02406浏览

How to Access the Name Field of the First Element in an Array in Go Templates?

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

在 Go 中使用 HTML 模板时,您可能会遇到这样的情况:需要访问数组的第一个索引的值。为了应对这一挑战,让我们探索提取所需数据的正确语法。

提供的代码片段演示了访问模板内数组中第一个元素的名称字段的尝试:

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

但是,这种方法并没有达到预期的结果,因为 {{index .Doc.Users 0}} 返回数组的整个第一个元素,包括 Name 和 Email 字段。要仅获取“名称”字段,您需要对表达式进行分组并应用 .Name 选择器,如下所示:

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

在此改进的语法中,索引函数返回 Doc.Users 数组的第一个元素,然后将其强制放入括号中以对表达式进行分组,并随后提供对名称字段的访问。

For示例:

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: "user1@example.com"},
            {Name: "Alice", Email: "user2@example.com"},
        },
    },
}

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

输出:

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

此更新的代码会生成所需的输出,其中在模板中成功检索 Doc.Users 数组中第一个元素的 Name 字段.

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn