// ...
var name string
err := rows.Scan(&name)
// ...
var id int
var name string
err = rows.Scan(&id, &name)
// ...
scanArgs := make([]interface{}, len(columns)) // 临时存储每一行数据
for index, _ := range scanArgs { // 为每列元素初始化一个指针
var tmp interface{}
scanArgs[index] = &tmp
}
err := rows.Scan(scanArgs...)
// ...
scanArgs := make([]interface{}, len(columns))
values := make([]interface{}, len(columns))
for j := range values {
scanArgs[j] = &values[j]
}
err := rows.Scan(scanArgs...)