慕的地6264312
2022-01-10 14:38:45
我Files的片F(xiàn)ile結(jié)構(gòu),我的圍棋程序,以保持名稱和文件的大小。我創(chuàng)建了模板,見下文: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) }當(dāng)然,我很恐慌地說:無法評(píng)估 []main.File 類型中的字段文件不確定如何range在模板中正確顯示文件名和大小。
1 回答

回首憶惘然
TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
管道的初始值(點(diǎn))是您傳遞給的值Template.Execute(),在您的情況下是Filestype []File。
因此,在您的模板執(zhí)行期間,點(diǎn) .是[]File. 該切片沒有命名的字段或方法Files,這.Files將在您的模板中引用。
您應(yīng)該做的只是使用.which 指代您的切片:
const tmpl = `
{{range .}}
file {{.}}
{{end}}
`
就這樣。測(cè)試它:
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 關(guān)注
- 155 瀏覽
添加回答
舉報(bào)
0/150
提交
取消