В Перейти базы данных / SQL учебник .
Он сказал, что при работе с неизвестными столбцами мы должны использовать sql.RawBytes.
И демо после:
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.
}
Последние три строки сказали:
Теперь вы можете проверять каждый элемент значений на ноль, и вы можете использовать интроспекцию типа и утверждения типа для извлечения столбца в типизированную переменную.
Что я хочу знать, это is КАК использовать самоанализ типа и утверждения типа для извлечения столбца в типизированную переменную 】