我Files的片File结构,我的围棋程序,以保持名称和文件的大小。我创建了模板,见下文:type File struct { FileName string FileSize int64}var Files []Fileconst tmpl = ` {{range .Files}} file {{.}} {{end}} `t := template.Must(template.New("html").Parse(tmplhtml)) err = t.Execute(os.Stdout, Files) if err != nil { panic(err) }当然,我很恐慌地说:无法评估 []main.File 类型中的字段文件不确定如何range在模板中正确显示文件名和大小。
1 回答
回首忆惘然
TA贡献1847条经验 获得超11个赞
管道的初始值(点)是您传递给的值Template.Execute(),在您的情况下是Filestype []File。
因此,在您的模板执行期间,点 .是[]File. 该切片没有命名的字段或方法Files,这.Files将在您的模板中引用。
您应该做的只是使用.which 指代您的切片:
const tmpl = `
{{range .}}
file {{.}}
{{end}}
`
就这样。测试它:
var Files []File = []File{
File{"data.txt", 123},
File{"prog.txt", 5678},
}
t := template.Must(template.New("html").Parse(tmpl))
err := t.Execute(os.Stdout, Files)
输出(在Go Playground上试试):
file {data.txt 123}
file {prog.txt 5678}
- 1 回答
- 0 关注
- 142 浏览
添加回答
举报
0/150
提交
取消