Go 将本地结果分配给外部范围

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

我有这段代码。问题是在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.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
}