在serveHTTP处理程序中调用接口方法和struct方法有什么区别?

时间:2017-06-16 17:11:33

标签: go

我从Java迁移到了。在' go'中,我在使用处理程序时感到困惑。

例如:ServeHTTP(w http.ResponseWriter, req *http.Request)

这里ResponseWriter是一个接口,Request是一个struct。我们使用w作为对象来调用ResponseWriter接口中的方法。 req对象也是如此。我知道结构可以实现一个接口。在这里,我展示了一个例子,让我感到困惑。 Go Playground Link

1 个答案:

答案 0 :(得分:2)

没有区别。接口是变量/ field / parameter的类型;该值仍然(很可能)是一个结构。这与Java中的相同,您可以在其中指定方法参数是接口类型,但您仍必须传递具体结果。在interface-typed参数上调用方法与在具体类型上调用方法相同。