En este artículo te mostraré cómo solucionar el error que dice algo como destination not a pointer al trabajar con bases de datos en el lenguaje Go, también conocido como Golang.
Explicación
El error nos lo dice todo: el destino que estamos enviando, no es un puntero. Recuerda que al leer datos de una base de datos usando Scan
, se debe enviar el apuntador a la variable, y no la variable en sí.
Puede que en tu caso estés haciendo algo así:
var nombre string
filas.Scan(nombre)
Si te fijas, estamos intentando escanear dentro de la variable nombre
. Esto causa el error.
Solución
En lugar de pasar la variable, pasa el apuntador a la misma. Recuerda que para obtener la dirección de memoria usamos &
así que el ejemplo anterior quedaría así:
var nombre string
filas.Scan(&nombre)
Ahora estamos pasando la dirección de la variable, y así se estará escaneando correctamente.