In the example here Redigo Docs for Pool the redis pool is set as a global variable in func main. Is that a kosher way to do things? Should you really be using global varibales left and right or is there a better, more preferred way of accomplishing the same thing?
1条回答 默认 最新
dongsheng1698 2014-07-26 14:00关注The only other solution have I seen, for instance in "Passing Context to Interface Methods" is:
create a
structthat accepts an embedded context and ourhandlertype, and we still satisfy thehttp.Handlerinterface thanks toServeHTTP.In your case, the
structwould include thepool, and thehandlerfunction.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 } }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报