为什么http处理程序的参数似乎将其指针向后移动? [重复]

为什么http处理程序的参数似乎将其指针向后移动?  [重复]

问题描述:

This question already has an answer here:

I am new to go and still trying to figure out a few things.

func handler(w http.ResponseWriter, r *http.Request) {
}

Why is w not a pointer and on the other hand r is, since the handler function will end up writing into w and only read from r?

</div>

此问题已经存在 在这里有答案 p>

This question has already been answered in this post, but to keep it short.

w http.ResponseWriter is actually an interface that's backed by a non-exported pointer.

Whereas r *http.Request is an actual exposed struct.

I'd recommend following the above link to learn more why this is.