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

У меня есть файл golang:

package main

import (
    "log"
    "sync"

    "github.com/jmoiron/sqlx"
)

var db *sqlx.DB
var once sync.Once

// GetDBConnection whatever
func GetDBConnection() {

    once.Do(func() {
        db, err := sqlx.Connect("postgres", "user=tom dbname=jerry password=myPassword sslmode=disable")
        if err != nil {
            log.Fatalln(err)
        }
    })

    return db   // <<< error here

}

Я получаю эту ошибку:

Too many arguments to return

Я просто пытаюсь создатьшаблон синглтона и вернуть соединение дБ.Я не уверен, если то, что возвращается из sqlx.Connect типа sqlx.DB, это может быть проблемой.Есть ли быстрый способ определить тип возвращаемого значения sqlx.Connect()?

1 Ответ

0 голосов
/ 23 октября 2018

Вы объявили функцию GetDBConnection() для возврата без аргументов.

func GetDBConnection() {

Вы должны указать Go тип аргумента, который вы намереваетесь вернуть:

func GetDBConnection() *sqlx.DB {

Что касается определения типа, я просто пошел на посмотреть на исходный код .Вы также можете посмотреть документацию на godoc.org , которая автоматически генерируется из общедоступных пакетов Go.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...