Назначить локальный результат для внешней области видимости - PullRequest
0 голосов
/ 23 октября 2018

У меня есть этот блок кода.Проблема в функции, я пытаюсь присвоить 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 внешней области видимости, а не объявить ее как локальную переменную?

1 Ответ

0 голосов
/ 23 октября 2018
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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...