我有这段代码。问题出在函数中,我试图在外部范围内分配给 db var,但它最终被声明为局部变量。
var db *sqlx.DB
func GetDatabaseConnection() *sqlx.DB {
if db == nil {
db, err := sqlx.Connect("postgres", "user=foo dbname=bar sslmode=disable")
if err != nil {
log.Fatalln(err)
}
}
return db
}
我的问题是,关于这一行:
db, err := sqlx.Connect(...)
如何将 db
分配给外部作用域,而不是将其声明为局部变量?
最佳答案
var db *sqlx.DB
func GetDatabaseConnection() *sqlx.DB {
if db == nil {
var err error # ADD THIS LINE, AND DO = INSTEAD OF := ON NEXT LINE
db, err = sqlx.Connect("postgres", "user=foo dbname=bar sslmode=disable")
if err != nil {
log.Fatalln(err)
}
}
return db
}
关于go - 将本地结果分配给外部范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52941360/