GormやsqlxのようなGolangのデータベースライブラリではプリミティブな機能である(*DB) Rowsと(*Rows) Scanが使用できる。 (*Rows) Scanの引数は大抵の場合structで紹介されているがinterface{}にScanした値をいれることができる。 以下がスニペット。 rows, err := sql.Rows() var results []map[string]interface{} cols, err := rows.Columns() for rows.Next() { var row = make([]interface{}, len(cols)) var rowp = make([]interface{}, len(cols)) for i := 0; i < len(cols); i++ { rowp[i] = &row[i] } rows