将 sqlx.Rows.StructScan 用于接口参数

我需要将 StructScan 函数用于接口(指向结构的指针)。但是,如果我尝试反映价值,则会出现错误,因为reflect.New()返回reflect.Value类型。如何扫描结构并将数据存储到dest var 中?


// package 1

type Data struct {

    id int `db:"id"`

    caption string `db:"caption"`

}


func Func1 {

    data := []Data{}

    GetData(&data)

    log.Println(data)

}


// package 2

func GetData(sql string, dest interface{}) {

    rows, err := DBI.Queryx(sql)

    if err == nil {

        // reflect.Value

        myData := reflect.New(reflect.TypeOf(dest).Elem().Elem())

        for rows.Next() {

            rows.StructScan(&myData) // Fail here


        }

    }

}


慕神8447489
浏览 188回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go