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

Go 在serveHTTP处理程序中调用接口方法和结构方法有什么区别?,go,Go,我要从Java搬到go。在“go”中,我在使用处理程序时感到困惑 例如:ServeHTTP(w http.ResponseWriter,req*http.Request) 这里ResponseWriter是一个接口,Request是一个结构。我们使用w作为对象来调用ResponseWriter接口中的方法。req对象也是如此。我知道结构可以实现接口。这里我展示了一个例子,我感到困惑的地方 没有区别。接口是您的变量/字段/参数的类型;该值仍然(很可能)是一个结构。这与Java中相同,在Java中,

我要从Java搬到go。在“go”中,我在使用处理程序时感到困惑

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


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

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

要扩展,接口本质上只是一个结构,没有数据字段,只有方法,或者至少你可以这样想。它们可以通过实现接口的方法来保存任何类型,而使用该类型所能做的唯一事情就是调用这些方法。然而,调用这些方法与在结构上调用方法没有什么不同。