为了账号安全,请及时绑定邮箱和手机立即绑定

如何对包含在模板中的结构切片内的切片进行范围排列?

如何对包含在模板中的结构切片内的切片进行范围排列?

Go
凤凰求蛊 2023-06-12 17:21:04
我试图遍历模板中的几个嵌套切片,但出现错误:panic: template: abc:3: unexpected <range> in rangegoroutine 1 [running]:text/template.Must(...)    /usr/local/go/src/text/template/helper.go:23main.main()    /tmp/sandbox748332064/main.go:38 +0x560我试过搜索文档,但似乎无法找到能够执行代码的解决方法,尽管这看起来非常简单。我的代码:package mainimport (    "log"    "os"    "text/template")type Person struct {    name     string    children []string}func main() {    p := []*Person{      {        name:     "Susy",        children: []string{"Bob", "Herman", "Sherman"},      },      {        name:     "Norman",        children: []string{"Rachel", "Ross", "Chandler"},      },    }    str := `      {{$people := .}}      {{range $i, $pp := range $people}}        {{$children := $pp.children}}        Name: {{$pp.name}}        Children:          {{range $j, $c := $children}}          Child {{$j}}: {{$c}}          {{end}}                         {{end}}    `    t := template.Must(template.New("abc").Parse(str))    err := t.Execute(os.Stdout, p)    if err != nil {      log.Println(err)    }}我的游乐场
查看完整描述

1 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

将此语法用于范围:


  {{range $i, $pp := $people}}

    {{$children := $pp.Children}}

    Name: {{$pp.Name}}

    Children:

      {{range $j, $c := $children}}

      Child {{$j}}: {{$c}}

      {{end}}                   

  {{end}}

此外,导出结构字段,以便模板可以使用这些字段。在模板中使用那些导出的名称。

在操场上运行


查看完整回答
反对 回复 2023-06-12
  • 1 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信