我有这个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()
的返回类型?
答案 0 :(得分:4)
您已声明函数1
不返回任何参数。
GetDBConnection()
You have to tell Go您要返回的参数类型:
func GetDBConnection() {
关于确定类型,我刚去look at the source code。您还可以查看documentation on godoc.org,它是从可公开获得的Go软件包中自动生成的。