gpt4 book ai didi

go - Redigo Redis Pool 真的应该是一个全局变量吗?

转载 作者:IT王子 更新时间:2023-10-29 02:17:10 32 4
gpt4 key购买 nike

在此处的示例中 Redigo Docs for Pool redis 池在 func main 中设置为全局变量。这是做事的犹太洁食方式吗?您真的应该左右使用全局变量,还是有更好、更受欢迎的方法来完成同样的事情?

最佳答案

我看到的唯一其他解决方案,例如在“Passing Context to Interface Methods”中是:

create a struct that accepts an embedded context and our handler type, and we still satisfy the http.Handler interface thanks to ServeHTTP.

在您的情况下,struct 将包含 poolhandler 函数。

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
}
}

关于go - Redigo Redis Pool 真的应该是一个全局变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24971669/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com