go언어 Handle

왱구·2023년 12월 29일

go

목록 보기
2/7

1. Handle, HandlerFunc , HandleFunc 이해

1) Handle

Handle 함수에는 인자로 Handler 가 필요하다.
Handler 는 ServeHTTP를 가지고 있는 interface이다.

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

Handler란 interface를 정의한것이고 ServeHTTP 함수를 정의해야 Handler interface가 된다.


2) HandlerFunc

ServeHTTP 메서드를 가진 타입으로 변환이 가능하다면 사용자 정의 함수를 Handle의 두 번째 인자로 넣어 줄 수 있다.

type HandlerFunc func(ResponseWriter, *Request)

3) HandleFunc

실제로 HandleFunc 함수 내부에는 HandlerFunc타입을 직접 호출하여 사용자 정의 함수handler를 전달한다.

func (mux *ServeMux) HandleFunc(pattern string, handler func(ResponseWriter, *Request)) {
  mux.Handle(pattern, HandlerFunc(handler))
}

두번째 인자로 func(http.ResponseWriter, *http.Request) 형태로 이루어져 있는 함수를 받는다.

profile
늦깎이 애아빠 개발지망생

0개의 댓글