返回的参数过多

时间:2018-10-23 02:41:33

标签: go singleton

我有这个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

我只是试图创建一个单例模式并返回db连接。我不确定sqlx.Connect返回的类型是否为sqlx.DB,这可能是问题所在。有没有一种快速的方法来确定sqlx.Connect()的返回类型?

1 个答案:

答案 0 :(得分:4)

您已声明函数1不返回任何参数。

GetDBConnection()

You have to tell Go您要返回的参数类型:

func GetDBConnection() {

关于确定类型,我刚去look at the source code。您还可以查看documentation on godoc.org,它是从可公开获得的Go软件包中自动生成的。