Conteúdo

Laços de repetição

Laços de repetição, bastante conhecidos como loops (do inglês: laços, ciclos), são estruturas que fazem com que um bloco de código seja executado repetidamente até que uma condição seja atendida.

Por exemplo, se meu cabelo tem shampoo, eu preciso executar a instrução “enxaguar cabelo” até que a condição de parada “quantidade de shampoo no cabelo é 0” seja atendida. A sintaxe dessa frase em Go ficaria parecida com o seguinte:

for cabelo com shampoo; quantidade de shampoo no cabelo é 0; mais uma vez {
    enxaguar cabelo
}

A instrução for

Em Go, os laços de repetição seguem a abordagem de outras linguagens inspiradas em C. Porém, Go vai além no quesito simplicidade. Todas as palavras reservadas que são comuns nas outras linguagens de programação, como while, for, foreach, são sumarizadas em Go simplesmente no comando for.

O for de Go é bastante empoderado! Ele assume algumas variações que correspondem ao comportamento de outras palavras reservadas das outras linguagens. A seguir são apresentadas as variações do for:

Abordagem com contador

Essa instrução funciona como o for da maioria das linguagens.

<mais em breve>

Sintaxe:

for <atribuição inicial>; <expressão condicional>; <incrementos/atribuições> {
    // Ações a serem executadas repetidamente até que
    // a condição seja atendida
}

Exemplo de uso:

Abordagem de repetição condicional (como o while das linguagens)

<preencher>

Sintaxe:

Exemplo de uso:

Ainda nessa abordagem temos o laço infinito! O while true ou o for(;;) de outras linguagens, em Go ele fica assim:

Exemplo no código:

Abordagem de iteração em algo composto (com range)

Esse uso é similar ao foreach ou for ... in … de algumas linguagens. O laço continuará a se repetir até percorrer todos os elementos do que vier após a palavra reservada range. “Percorrer os elementos” costuma ser chamado de iterar, e em Go você pode iterar em arrays, slices, strings, maps ou lendo de um channel.

Sintaxe:

ou

Exemplos

Exemplo com slice de string:

Exemplo com map:

Last updated