Go: convertir interface a otro tipo de dato

En el tutorial de hoy vamos a ver cómo convertir de un valor de tipo interface a cualquier otro tipo en Go también conocido como Golang.

Un interface es un valor “genérico” (aunque los genéricos son otra cosa en Go y se han introducido recientemente), y como Golang es fuertemente tipado debemos hacer la conversión explícita.

Por eso es que hoy veremos cómo convertir una interface a string, int, int64, etcétera.

Convertir interface a otro tipo de dato en Golang

Hay 2 maneras de hacer esto. Una es hacerlo sin verificar la conversión, exponiéndonos a que el programa entre “en pánico”. Es decir, si la conversión falla, será como invocar a panic.

Otra manera de hacerlo es verificando la conversión, y esa es la que te mostraré. La sintaxis es:

valorConTipoDefinido, conversiónCorrecta := valorInterface.(tipoDeDato)

Veamos el código, yo quiero convertir una interface{} a un int64 entonces hago lo siguiente:

idUsuario := session.Values["idUsuario"] // Es una interface
idUsuarioEntero, ok := idUsuario.(int64)
if ok {
  // Aquí podemos usar idUsuarioEntero con seguridad
} else {
  // Error, no se pudo convertir a int64
}

Aquí idUsuario es una interface, y la estoy convirtiendo con .(int64) en la línea 2, pero verificando si la conversión es válida en la línea 3.

De este modo podemos convertir una interface a una cadena (string), int64 o cualquier otro tipo de dato de manera segura y sin romper nuestro programa en Go.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *