I\'m learning Go by writing an app for GAE, and this is signature of a handler function:
func handle(w http.ResponseWriter, r *http.Request) {}
What you get for w is a pointer to the non exported type http.response but as ResponseWriter is an interface, that's not visible.
From server.go:
type ResponseWriter interface {
...
}
On the other hand, r is a pointer to a concrete struct, hence the need to pass a reference explicitly.
From request.go:
type Request struct {
...
}