我有这个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()
的返回类型? 最佳答案
您已声明函数GetDBConnection()
不返回任何参数。
func GetDBConnection() {
You have to tell Go您打算返回的参数类型:
func GetDBConnection() *sqlx.DB {
至于确定类型,我只是去了look at the source code。您还可以查看documentation on godoc.org,它是从公开可用的Go软件包中自动生成的。
关于go - 返回的参数过多,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52940406/