Saltar al contenido principal
Publicado el

Errores Comunes en Go

Compartir:

Introducción

Aunque Go es conocido por su simplicidad y eficiencia, como todo lenguaje de programación, tiene peculiaridades que pueden ser fuente de errores para los desarrolladores. En este artículo, exploramos algunos de estos errores comunes para ayudarte a evitar trampas en tu código.

1. No manejar los errores retornados

Un error clásico en Go es ignorar los errores retornados por las funciones.

res, _ := http.Get("https://api.ejemplo.com/data")

Lo correcto sería manejar el error, verificándolo:

res, err := http.Get("https://api.ejemplo.com/data")

if err != nil {
  log.Fatalf("Error al obtener datos: %v", err)
}

2. Uso incorrecto de paquetes

Importar paquetes innecesarios o usar paquetes que no son adecuados para la tarea en cuestión son errores comunes.

import (
  "fmt"
  "math/rand"
)

func main() {
  fmt.Println(rand.Intn(100))  // ¡Puede no ser tan aleatorio como imaginas!
}

3. Slices y sus trampas

Una comprensión imprecisa de cómo funcionan los slices en Go puede llevar a comportamientos inesperados.

a := []int{1, 2, 3}
b := a[:2]
b[0] = 42
fmt.Println(a)  // [42, 2, 3]

En este ejemplo, b es un slice de a, lo que significa que comparten la misma memoria. Al modificar b, también modificas a.

4. Goroutines y cierres

Al usar goroutines con bucles, es común encontrar comportamientos inesperados debido al uso de cierres.

for i := 0; i < 3; i++ {
  go func() {
    fmt.Println(i)
  }()
}

La salida anterior puede sorprender, ya que puede imprimir el mismo número varias veces.

Conclusión

Go es un lenguaje potente e intuitivo, pero, como todos los lenguajes, tiene sus matices. Al familiarizarte con estos errores comunes, estarás mejor preparado para escribir código Go más robusto y eficaz.

Happy coding!