函数实现接口
问题:
函数和类型如何在接口中交互?
答案:
接口定义了要实现的类型所需的方法。下面是一个示例:
type Handler interface { ServeHTTP(*Conn, *Request) }
示例一:自定义类型实现接口
type Counter int func (ctr *Counter) ServeHTTP(c *http.Conn, req *http.Request) { fmt.Fprintf(c, "counter = %d\n", ctr) ctr++ }
Counter 类型实现 ServeHTTP 方法,满足 Handler 接口。
示例 2:利用 HandlerFunc(作为接收器)
type HandlerFunc func(*Conn, *Request) func (f HandlerFunc) ServeHTTP(c *Conn, req *Request) { f(c, req) } var Handle404 = HandlerFunc(notFound)
这里,HandlerFunc 是一个接受 Conn 和 Request 且不返回任何内容的函数。这允许像 notFound 这样的函数通过 HandlerFunc 添加 ServeHTTP 方法来用作处理程序。这种间接方法允许灵活地实现接口。
以上是如何使用函数和类型来满足接口的要求?的详细内容。更多信息请关注PHP中文网其他相关文章!