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
struct
chấp nhận ngữ cảnh được nhúng và trình xử lýhandler
của chúng tôi nhập và chúng tôi vẫn đáp ứnghttp.Handler
giao 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
}
}