猿问

返回的参数太多

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


肥皂起泡泡
浏览 92回答 1
1回答

长风秋雁

您已声明该函数GetDBConnection()不返回任何参数。func GetDBConnection() {你必须告诉 Go你打算返回的参数的类型:func GetDBConnection() *sqlx.DB {至于确定类型,我只是去看了源码。您还可以查看godoc.org 上的文档,它是从公开可用的 Go 包自动生成的。
随时随地看视频慕课网APP

相关分类

Go
我要回答