🔥 CONVERTIR ENTRE TIPOS

Importancia de la conversión de tipos en Go

En el desarrollo con Go, es frecuente encontrarse con la necesidad de transformar datos de un tipo a otro. Cómo convertir string a boolean en Go o convertir números a cadenas de texto son tareas habituales, especialmente cuando se manipulan datos provenientes de formularios, archivos o APIs. Dominar la conversión de tipos en Golang es fundamental para evitar errores y garantizar que los datos sean tratados correctamente.

Go proporciona varias funciones y paquetes para realizar estas conversiones, siendo el paquete strconv uno de los más utilizados. A continuación, se presentan diferentes escenarios y ejemplo de conversión de tipos en Golang para ilustrar cómo abordar estas situaciones.

Convertir string a boolean en Go

Una de las conversiones más comunes es transformar una cadena de texto que representa un valor booleano (“true” o “false”) en un tipo booleano real. Esto se logra utilizando la función strconv.ParseBool.

Ejemplo:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    var texto string = "true"
    booleano, err := strconv.ParseBool(texto)
    if err != nil {
        fmt.Println("Error al convertir:", err)
    } else {
        fmt.Println(booleano)
    }
}

Convertir boolean a string en Go

Para la operación inversa, es decir, convertir un valor booleano a su representación en texto, se utiliza strconv.FormatBool.

Ejemplo:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    var valorBool bool = false
    texto := strconv.FormatBool(valorBool)
    fmt.Println(texto)
}

Convertir int a string en Go con strconv

Otra conversión frecuente es transformar un número entero a una cadena de texto. Convertir int a string en Go con strconv se realiza con la función strconv.Itoa.

Ejemplo:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    var numero int = 42
    texto := strconv.Itoa(numero)
    fmt.Println(texto)
}

Convertir string a int en Go

Cuando se recibe un número como texto y se necesita operar con él como entero, se utiliza strconv.Atoi.

Ejemplo:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    var texto string = "123"
    numero, err := strconv.Atoi(texto)
    if err != nil {
        fmt.Println("Error al convertir:", err)
    } else {
        fmt.Println(numero)
    }
}

Convertir float a int en Go

En ocasiones, es necesario convertir un número decimal (float) a un entero. Esto se puede hacer mediante una conversión directa, aunque se pierde la parte decimal.

Ejemplo:

package main

import (
    "fmt"
)

func main() {
    var decimal float64 = 9.99
    entero := int(decimal)
    fmt.Println(entero)
}

Mejores prácticas para convertir tipos de datos en Go

  • Utiliza siempre las funciones del paquete strconv para conversiones entre strings y otros tipos.
  • Maneja los posibles errores de conversión, ya que intentar convertir un valor no válido puede causar fallos en tiempo de ejecución.
  • Recuerda que al convertir de float a int se pierde la parte decimal.
  • Lee la documentación oficial para conocer todas las funciones disponibles y sus particularidades.

Mejores prácticas para convertir tipos de datos en Go ayudan a evitar problemas y a escribir código más robusto y mantenible.

Errores comunes al convertir tipos en Golang

  • No comprobar el error devuelto por las funciones de conversión.
  • Intentar convertir cadenas que no representan valores válidos (por ejemplo, convertir “abc” a int).
  • Olvidar que la conversión de float a int trunca el valor, no lo redondea.

Errores comunes al convertir tipos en Golang pueden llevar a resultados inesperados o fallos en la aplicación, por lo que es importante estar atento a estos detalles.


Conclusión

La conversión de tipos en Go es una habilidad esencial para cualquier desarrollador que trabaje con datos dinámicos o provenientes de fuentes externas. Conocer las funciones adecuadas y aplicar buenas prácticas permite manipular la información de manera segura y eficiente, evitando errores y mejorando la calidad del código.


Cuestionario de repaso

  1. ¿Qué función se utiliza para convertir un string a boolean en Go?
  2. ¿Cómo se convierte un int a string en Go?
  3. ¿Qué sucede si intentas convertir un string no numérico a int usando strconv.Atoi?
  4. ¿Qué parte del número se pierde al convertir un float a int?
  5. ¿Por qué es importante manejar los errores al realizar conversiones de tipos en Go?
  6. Menciona una buena práctica al convertir tipos de datos en Go.
  7. ¿Qué función se utiliza para convertir un boolean a string en Go?
  8. ¿Qué paquete estándar de Go se utiliza para conversiones entre strings y otros tipos?