Giải pháp duy nhất khác mà tôi đã thấy, chẳng hạn như trong "Chuyển ngữ cảnh sang phương thức giao diện" là:
tạo một
structchấp nhận ngữ cảnh được nhúng và trình xử lýhandlercủa chúng tôi nhập và chúng tôi vẫn đáp ứnghttp.Handlergiao diện nhờServeHTTP.
Trong trường hợp của bạn, struct sẽ bao gồm pool và trình xử lý handler chức năng.
type appContext struct {
pool Pool
}
type appHandler struct {
*appContext
h func(a *appContext, w http.ResponseWriter, r *http.Request) (int, error)
}
func (ah appHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
...
}
func main() {
context := &appContext{
pool: ...,
// any other data
}
}