Go 将本地结果分配给外部范围
我有这段代码。问题是在func中,我试图在外部作用域中分配给db var,但它最终被声明为局部变量Go 将本地结果分配给外部范围,go,Go,我有这段代码。问题是在func中,我试图在外部作用域中分配给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
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
}