实现接口的函数
在 Go 中,接口定义了类型必须实现的一组方法。如果一个类型提供了接口声明的所有方法,则该类型实现了该接口。
示例 1:直接实现接口
以下代码定义了 Handler 接口和实现它的类型:
这里,Counter 类型有一个 ServeHTTP 方法,该方法接受以下参数所需的参数处理程序接口。因此,Counter 实现了 Handler 接口。
示例 2:使用函数实现接口
在此示例中,名为 notFound 的函数不是有效的 Handler 类型,因为它没有所需的方法:
要使 notFound 实现 Handler 接口,需要“欺骗”成以下形式:
这里,HandlerFunc 是一种接受两个参数且不返回任何内容的类型。通过将 notFound 包装在 HandlerFunc 中并将其分配给变量,notFound 就成为有效的 Handler 类型。
说明
这里的关键概念是可以使用变量 Handle404作为一个处理程序,尽管它实际上是一个函数。这是因为 HandlerFunc 类型实现了该函数的 ServeHTTP 方法。当你调用Handle404.ServeHTTP时,它实际上是在调用notFound函数。
这种方法允许直接使用没有实现Handler接口的函数。它本质上是一种“调整”函数以适应接口要求的方法。
以上是如何调整函数来实现 Go 中的接口?的详细内容。更多信息请关注PHP中文网其他相关文章!