함수 구현 인터페이스
질문:
함수와 유형이 인터페이스에서 어떻게 상호 작용합니까? ?
답변:
인터페이스는 구현할 유형에 필요한 메서드를 정의합니다. 예는 다음과 같습니다.
type Handler interface { ServeHTTP(*Conn, *Request) }
예 1: 인터페이스를 구현하는 사용자 정의 유형
type Counter int func (ctr *Counter) ServeHTTP(c *http.Conn, req *http.Request) { fmt.Fprintf(c, "counter = %d\n", ctr) ctr++ }
Counter 유형은 Handler 인터페이스를 만족하는 ServeHTTP 메소드를 구현합니다.
예제 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를 받아 아무것도 반환하지 않는 함수입니다. 이를 통해 HandlerFunc를 통해 ServeHTTP 메소드를 추가하여 notFound와 같은 기능을 핸들러로 사용할 수 있습니다. 이 간접적인 방법을 사용하면 인터페이스 구현 시 유연성을 얻을 수 있습니다.
위 내용은 인터페이스의 요구 사항을 충족하기 위해 함수와 유형을 어떻게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!