gpt4 book ai didi

templates - 访问排序对列表的第一项

转载 作者:数据小太阳 更新时间:2023-10-29 03:13:48 25 4
gpt4 key购买 nike

我是 Go Templates 的新手,我正在尝试访问 SortedPair 列表中的第一个元素。我尝试了 {{ (index .Labels.SortedPairs 1)}}{{ .Name }} = {{ .Value }} 但这不起作用,我得到 无法评估类型模板中的字段名称。警报

有没有办法获取第一个元素?当它是 {{range}} 时,它工作正常但显示的元素太多。

谢谢

最佳答案

请注意,第一个索引是 0 而不是 1

您可以在显示其NameValue 时索引列表:

{{(index .Labels.SortedPairs 0).Name}} = {{(index .Labels.SortedPairs 0).Value}}

不过,如果将它分配给一个变量,它会更短:

{{$first := index .Labels.SortedPairs 0}}{{$first.Name}} = {{$first.Value}}

如果你使用 {{with}} Action 会更清楚:

{{with index .Labels.SortedPairs 0}}{{.Name}} = {{.Value}}{{end}}

让我们测试 3 个变体:

type Pair struct {
Name, Value string
}

var variants = []string{
`{{$first := index .SortedPairs 0}}{{$first.Name}} = {{$first.Value}}`,
`{{(index .SortedPairs 0).Name}} = {{(index .SortedPairs 0).Value}}`,
`{{with index .SortedPairs 0}}{{.Name}} = {{.Value}}{{end}}`,
}

m := map[string]interface{}{
"SortedPairs": []Pair{
{"first", "1"},
{"second", "2"},
},
}

for _, templ := range variants {
t := template.Must(template.New("").Parse(templ))
if err := t.Execute(os.Stdout, m); err != nil {
panic(err)
}
fmt.Println()
}

输出(在 Go Playground 上尝试):

first = 1
first = 1
first = 1

关于templates - 访问排序对列表的第一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43259685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com