【golang学习笔记】net/http包下handler和handlerFunc区别

方法签名

func Handle

func Handle(pattern string, handler Handler)
Handle注册HTTP处理器handler和对应的模式pattern(注册到DefaultServeMux)。如果该模式已经注册有一个处理器,Handle会panic。ServeMux的文档解释了模式的匹配机制。

func HandleFunc

func HandleFunc(pattern string, handler func(ResponseWriter, *Request))
HandleFunc注册一个处理器函数handler和对应的模式pattern(注册到DefaultServeMux)。ServeMux的文档解释了模式的匹配机制。

func Handle

func Handle(pattern string, handler Handler) { DefaultServeMux.Handle(pattern, handler) }

hander参数是一个接口

type Handler interface {
   ServeHTTP(ResponseWriter, *Request)
}

所以要使用这个方法需要去实现这个接口

func HandleFunc


func HandleFunc(pattern string, handler func(ResponseWriter, *Request)) {
   DefaultServeMux.HandleFunc(pattern, handler)
}

第二个参数是一个函数,不过是有特定参数的函数

所以一般使用使用HandleFunc即可


版权声明:本文为qq_45795744原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。