如何在Go

时间:2015-11-18 01:07:31

标签: go

我需要使用*template.Execute方法,但我希望结果为字符串或byte [],以便我可以将其传递给另一个*template.Execute,但该方法将其结果写入编写器。有没有办法创建一个写入我定义的变量的编写器?

2 个答案:

答案 0 :(得分:5)

使用bytes.Buffer的实例,该实例实现Lines <- "Title Year Rating Title Year Rating Title Year Rating Movie1 1997 6.7 Movie2 1987 8.2 Movie3 2009 7.1" DF <- read.table(text = Lines, header = TRUE, check.names = FALSE, as.is = TRUE)

io.Writer

然后,您可以使用buff.String()获取var buff bytes.Buffer if err := tpl.Execute(&buff, data); err != nil { panic(err) } 结果,或使用buff.Bytes()获得string结果。

答案 1 :(得分:2)

您也可以将 strings.Builder 用于此目的:

package main

import (
   "html/template"
   "strings"
)

func main() {
   t, e := template.New("date").Parse("<p>{{ .month }} - {{ .day }}</p>")
   if e != nil {
      panic(e)
   }
   b := new(strings.Builder)
   t.Execute(b, map[string]int{"month": 12, "day": 31})
   println(b.String())
}

https://golang.org/pkg/strings#Builder