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.

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto