cols, err := rows.Columns() // Remember to check err afterwards
vals := make([]interface{}, len(cols))for i, _ := range cols {
    vals[i] = new(sql.RawBytes)
}for rows.Next() {
    err = rows.Scan(vals...)
    // Now you can check each element of vals for nil-ness,
    // and you can use type introspection and type assertions
    // to fetch the column into a typed variable.
}

官方原文链接
官方的Demo是这样写的,最下面留了3行注释:
Now you can check each element of vals for nil-ness, and you can use type introspection and type assertions to fetch the column into a typed variable.
请问这个use type introspection and type assertions to fetch the column into a typed variable到底要怎么实现?
查了诸多资料都没有找到答案。
网上大部分说的都是(string)value强转,可能这些说法都有些年代了,我现在这样写是不行的,会报错。