Publicado em

Erros Comuns em Go

Partilhar:

Introdução

Embora Go seja conhecido por sua simplicidade e eficiência, como toda linguagem de programação, possui peculiaridades que podem ser fonte de erros para os desenvolvedores. Neste artigo, exploramos alguns desses erros comuns para ajudá-lo a evitar armadilhas em seu código.

1. Não lidar com erros retornados

Um erro clássico em Go é ignorar erros retornados pelas funções.

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

O correto seria lidar com o erro, verificando-o:

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

if err != nil {
  log.Fatalf("Erro ao buscar dados: %v", err)
}

2. Uso incorreto de pacotes

Importar pacotes desnecessários ou usar pacotes que não são adequados para a tarefa em questão são erros comuns.

import (
  "fmt"
  "math/rand"
)

func main() {
  fmt.Println(rand.Intn(100))  // Pode não ser tão aleatório quanto você imagina!
}

3. Slices e suas armadilhas

Uma compreensão imprecisa de como os slices funcionam em Go pode levar a comportamentos inesperados.

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

Neste exemplo, b é um slice de a, o que significa que eles compartilham a mesma memória. Ao modificar b, você também modifica a.

4. Goroutines e encerramentos

Ao usar goroutines com loops, é comum encontrar comportamentos inesperados devido ao uso de encerramentos.

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

A saída acima pode surpreender, pois pode imprimir o mesmo número várias vezes.

Conclusão

Go é uma linguagem poderosa e intuitiva, mas, como todas as linguagens, tem suas nuances. Ao se familiarizar com esses erros comuns, você estará melhor preparado para escrever código Go mais robusto e eficaz.

Happy coding!