dongzhunqiu4841 2017-06-16 17:11
浏览 48
已采纳

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

I'm moving from Java to go. In 'go', I got confused when using a Handler.

For eg: ServeHTTP(w http.ResponseWriter, req *http.Request)

Here ResponseWriter is an interface and Request is a struct. We are using w as an object to call the methods in ResponseWriter interface. The same goes with req object. I know that a struct can implement an interface. Here I'm showing an example and where I'm getting confused. Go Playground Link

  • 写回答

1条回答 默认 最新

  • dspv70887 2017-06-16 17:13
    关注

    There's no difference. The interface is the type of your variable/field/parameter; the value is still (most likely) a struct. This is the same as in Java, where you can specify that a method argument is of an interface type, but you must still pass in a concretion. Calling methods on the interface-typed argument is the same as calling the method on a concrete type.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?