Golang - 函数“Execute”在哪里写入流?

时间:2012-12-15 00:39:28

标签: stream go

我是Go的初学者,我不明白在函数Execute的流中写入数据“home.html”的调用在哪里.http .ResponseWriter是清楚但在函数Execute我看不到像write .. fmt.Fprint..这样的东西我只看到Execute

的递归

http://golang.org/src/pkg/html/template/template.go?s=1245:1315#L40

//my Function
func homeHandler(c http.ResponseWriter, req *http.Request) {

var homeTempl = template.Must(template.ParseFiles("home.html"))

//here is my misunderstanding
homeTempl.Execute(c, req.Host)
//Thats consistent 
fmt.Fprint(c, "hallo")

}

1 个答案:

答案 0 :(得分:1)

这不是递归电话。它在“text / template”包中调用Template.Execute(而不是“html / template”中的Template.Execute)。您还可以在这里找到实际在Writer上写入字节的代码。

http://golang.org/src/pkg/text/template/exec.go?s=2630:2700#L95