从行中获取 sql 行

Get sql rows from row

如何在 Go 中对 *sql.Rows*sql.Row 使用一种解析(扫描)方法?

解析(Scan)方法使用一个代码解析一行

...
row := r.stmOne.QueryRow(id)
rows, err := r.stmOther.Query(ids, params)
parseRow(row, &item)
for rows.Next(){
    parseRows(rows, &item)
}
...

func parseRows(row *sql.Rows, item *typeItem) error {
    err := row.Scan(....) /// same
}

func parseRow(row *sql.Row, item *typeItem) error {
    err := row.Scan(....) /// same
}
type RowScanner interface {
    Scan(dest ...interface{}) error
}

func scanRowIntoItem(row RowScanner, item *typeItem) error {
    err := row.Scan(...)
}
row := r.stmOne.QueryRow(id)
rows, err := r.stmOther.Query(ids, params)
scanRowIntoItem(row, &item)
for rows.Next(){
    scanRowIntoItem(rows, &item)
}