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.
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.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.