1
resposta

for i, site := range sites // Por que não precisa declarar i?

Por que não precisa declarar a variável i neste caso? Eu não entendi muito bem o FOR com o Range.

1 resposta

Bom dia, Everton!

Esclarecendo sua dúvida:

O i foi sim declarado, justamente nessa linha.

Vamos pegar essa linha de código:

for i, site := range sites {  // i e site são declaradas nessa linha
    // Insira algo aqui
}

Ao iterar pelos elementos de uma array, uma forma simplificada de fazê-lo é usando o range.

Ao usar o range, ele tem dois possíveis outputs:

Caso duas variáveis sejam inseridas antes do walrus operator := a primeira variável receberá o índice dessa iteração, e o segundo será o elemento da array que ocupa essa posição. Justamente por estarmos usando o Walrus operator, tanto a variável i como a site estão sendo declaradas na linha do range.

Caso somente uma variável seja inserida antes do Walrus operator :=, essa variável será o índice:

for indice := range series {  // indice é declarado nessa linha
    // Insira algo aqui
}

Outros possíveis usos do range em um laço for:

for indice := range 10 {
    // Alguma operação para ser repetida 10 vezes, usando o índice
}

Desse modo, índice receberá 0, depois 1, etc, até 9.

E, por fim, a sintaxe mais recente, introduzida nos últimos anos:

for range 10 {
    // Alguma operação para ser repetida 10 vezes
}