返回的参数过多

I have this golang file:

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

}

I get this error:

Too many arguments to return

I am just trying to create a singleton pattern and return the db connection. I am not sure if what is returned from sqlx.Connect is type sqlx.DB, that might be the problem. Is there a quick way to determine the return type of sqlx.Connect()?

You've declared the function GetDBConnection() to return no arguments.

func GetDBConnection() {

You have to tell Go the type of the argument you intend to return:

func GetDBConnection() *sqlx.DB {

As for determining the type, I just went to look at the source code. You could also look at the documentation on godoc.org, which is auto-generated from publicly available Go packages.