templates - 如何将模板输出写入 Golang 中的文件?
问题描述
我使用以下代码可以正常工作,但现在我想将模板打印到文件并尝试以下但得到错误
package main
import (
"html/template"
"log"
"os"
)
func main() {
t := template.Must(template.New("").Parse(`{{- range .}}{{.}}:
echo "from {{.}}"
{{end}}
`))
t.Execute(os.Stdout, []string{"app1", "app2", "app3"})
f, err := os.Create("./myfile")
if err != nil {
log.Println("create file: ", err)
return
}
err = t.Execute(f, t)
if err != nil {
log.Print("execute: ", err)
return
}
f.Close()
}
错误是:
execute: template: :1:10: executing "" at <.>: range can't iterate over {0xc00000e520 0xc00001e400 0xc0000b3000 0xc00009e0a2}
解决方案
你给了一个错误的参数:
err = t.Execute(f, t)
它应该是
err = t.Execute(f,[]string{"app1", "app2", "app3"})
推荐阅读
- mysql - 带有 if 条件的 MySQL 子查询
- reactjs - 使用 reactjs Material ui 在 3 列中显示我的卡片
- r - 为什么我的二项式 GLM 有多个预测线?
- c++ - 如何在凯撒密码解密作业中使用英语字母频率?
- javascript - 全局作用域和对象作用域中的上下文和词法环境
- cryptography - 在 Solidity 中进行加密
- postgresql - postgres的主要作用不是postgres,如何设置为postgress
- github-api - Octokit:PUT /repos/{owner}/{repo}/contents/{path} 状态:404
- xml - MS Access 导出到特定的 XML 格式
- javascript - 如何为 Google 地图的“未加载地图”部分设置样式