Golang 구조에서 기능 인터페이스의 전달 함수

기능 구조, 인터페이스의 전달 함수

함수 F. 유형의 정의 및 인터페이스는 방법 A를 구현하고이 방법 자체를 호출한다. 이것은 다른 언어 기능 이동 포트 A의 일반적인 기술 (정의 인수 반환 값 F와 동일)으로 변환된다

"콜백"을 달성하기 위해 동적으로 캐시, 키가 존재하지 않을 때, 원격 데이터베이스 또는 파일 및 기타 데이터 소스에서 데이터를 고려할 필요가 같이 생성. 그래서 콜백 함수가 죽을 수 없습니다 물품.

사용자 정의 방식 콜백 함수, 따라서, 캐시 내의 데이터 구조 멤버 변수 콜백 방법이있다.

다음 코드는 예입니다.

type Getter interface {
	Get(key string)([]byte,error)
}

type GetterFunc func(key string)([]byte,error)

//
func (f GetterFunc) Get(key string)([]byte,error){
	return f(key)
}
//test
func TestGetterFunc_Get(t *testing.T) {
	var f Getter  = GetterFunc(func(key string) ([]byte,error) {
		return []byte(key),nil
	})

	expect := []byte("key")
	if v,_ := f.Get("key");!reflect.DeepEqual(v,expect){
		t.Error("callback failed")
	}
}

추천

출처www.cnblogs.com/Jun10ng/p/12616284.html