- Autor
- Nome
- Nelson Silva
- Social
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
- 2. Uso incorreto de pacotes
- 3. Slices e suas armadilhas
- 4. Goroutines e encerramentos
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.