A maioria das linguagens que já trabalhei tem vários comandos para fazer looping, como por exemplo for, foreach, while, do..while e goto.
Já em Go, nós só temos o comando for, porém ele tem várias assinaturas, o que no final faz com que ele possa ter o comportamento equivalente a um for, foreach e while de outras linguagens.
Vamos começar pela forma mais básica, que é a mesma assinatura que outras linguagens utilizam.
for i := 0; i < 10; i++ {
fmt.Println(i)
}
nomes := []string{Tiago, Lucas, Pedro, Luana, Dani}
for i := 0; i < len(nomes); i++ {
fmt.Println(nomes[i])
}
Em outras linguagens podemos facilitar o segundo caso exemplificado acima utilizando o comando foreach para iterar o array. Em Go, para utilizar essa forma de iteração, tudo que precisamos fazer é mudar a assinatura do for como mostramos abaixo.
nomes := []string{Tiago, Lucas, Pedro, Luana, Dani}
for key, nome := range nomes {
fmt.Printf(%s está na posição %i \n, nome, key)
}
A cada volta o comando range retorna a key e o value da posição do array que o looping está. Caso você queira somente o value, só precisamos mudar um pouquinho a assinatura.
nomes := []string{Tiago, Lucas, Pedro, Luana, Dani}
for _, nome := range nomes {
fmt.Println(nome)
}
Fácil não?!
No exemplo abaixo, vou criar o controle da váriavel de looping fora da condição do for, fazendo com que o looping funcione como o comando while.
i := 0
for i < 20 {
//... algum código
if alguma_condicao {
i++
}
}
Por último, quando criamos um serviço que precisa ficar ouvindo alguma porta ou executando determinada tarefa de tempos em tempos, costumamos tirar proveito do looping infinito para que o serviço nunca morra.
Em outras linguagens essa missão seria resolvida com o famoso while true. Em Go podemos fazer da seguinte forma.
for {
// seu código maravilindo aqui!!!!
}
Deixem suas dúvidas nos comentários.
Até a próxima!
Faça parte da comunidade!
Receba os melhores conteúdos sobre Go, Kubernetes, arquitetura de software, Cloud e esteja sempre atualizado com as tendências e práticas do mercado.
Livros Recomendados
Abaixo listei alguns dos melhores livros que já li sobre GO.




