たとえば、「コンテキストをインターフェイスメソッドに渡す」で見た他の唯一の解決策は次のとおりです。
struct
を作成します 埋め込まれたコンテキストとhandler
を受け入れます タイプしても、http.Handler
を満たしますServeHTTP
のおかげでインターフェース 。
あなたの場合、struct
pool
が含まれます 、およびhandler
機能。
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
}
}