Introducción
En cualquier lenguaje de programación necesitaremos convertir o castear diferentes tipos de datos. Hoy veremos cómo convertir números a cadena y viceversa, así como otras conversiones útiles usando strconv.
Convertir cadena a entero
Para ello utilizamos strconv.Atoi, que quiere decir algo como “ASCII to integer”. Si algo malo pasa durante la conversión, devolverá un error en la segunda variable. Un ejemplo vale más que mil palabras:
package main
import (
"strconv"
"fmt"
)
func main(){
numeroCadena := "10"
numeroEntero, error := strconv.Atoi(numeroCadena)
if error != nil {
fmt.Println("Error al convertir: ", error)
}
fmt.Println(numeroEntero + 5) // Imprime 15
}
En este caso convertimos la cadena “10”. Si algo saliera mal durante la conversión, lo imprimimos. Pero en caso de que todo salga bien, imprimirá 15, ya que estamos sumando su representación entera + 5.
Convertir entero a cadena
Ahora veamos cómo convertir un número entero a una cadena o string. Para ello usamos “Itoa” que quiere decir algo como “Integer to ASCII”. Se utiliza así:
package main
import (
"strconv"
"fmt"
)
func main(){
numero := 20
numeroCadena := strconv.Itoa(numero)
fmt.Println("Tengo " + numeroCadena + " dedos") // Imprime 'Tengo 20 dedos'
}
En este caso, Itoa no devuelve ningún error. Supongo que es porque existe una representación de cadena para cualquier otro tipo de valor.
Convertir a binario
También podemos convertir una cadena a su representación binaria, como lo explico en este post.
Otras conversiones
Podemos convertir cadenas a booleanos con FormatBool y a flotantes con FormatFloat. Aquí dejo un link a la página oficial.