1
resposta

Pq xCarro funciona na function passouTodaATela se o nome da variável é xCarros ?

Fiz e funcionou, mas não consegui entender porque a variável escrita de forma diferente funcionou.

Obrigada

1 resposta

Oi oi, Ana! Tudo bem contigo?

Essa dúvida surge de maneira bem recorrente e às vezes confunde um pouco. Vamos lá! :)

Em primeiro lugar, é importante entendermos que o xCarro é diferente de xCarros neste contexto. Mas... o que torna os dois tão diferentes então?

 

xCarro é um parâmetro de função


 

O xCarro é um parâmetro da função passouTodaATela(), é apenas um nome que "identifica" o valor do argumento. Ele poderá ter qualquer nome que isso não afetará o comportamento do código. No entanto, recomendamos que utilize nomes que sejam legíveis por questões de boas práticas.

Exemplo: se você trocar o nome xCarro por batatinha, isso não irá alterar o comportamento do jogo e também o resultado no ambiente de visualização. Porém, qualquer outro desenvolvedor que olhar seu código provavelmente ficará confuso com o uso dessa nomenclatura para um parâmetro.

 

xCarros é uma variável


 

xCarros então é uma variável que contém uma lista de valores. Além disso, o instrutor passa o parâmetro xCarro e depois declara que aquele valor é a lista com os valores de xCarros. Ele utiliza esse recurso por questões de boas práticas e pelo fato de que ainda precisa tratar essa variável para transformá-la em um argumento.

Vamos analisar o código?

function voltaPosicaoInicialDoCarro(){
    for(let i = 0; i < imagemCarros.length; i = i + 1){
        if(passouTodaATela(xCarros[i])){ //bem aqui ele inseriu a lista xCarros como o valor do parâmetro.
                xCarros[i] = 600;
        }
    }
}

Como podemos observar, o instrutor passa a variável e sua iteração como argumento. Se ele inserisse o xCarros diretamente na função passouTodaATela(), há um conflito e o o interpretador não concretiza o loop com o for.

 

Espero que as informações tenham ajudado e se as dúvidas persistirem , estamos à disposição.

Vou deixar um link que redireciona para um tópico semelhante ao seu e explico mais detalhadamente sobre os parâmetros das funções: https://cursos.alura.com.br/forum/topico-de-onde-vem-o-xcarro-158190

E outro tópico que aprofunda a questão da função passouTodaATela(): https://cursos.alura.com.br/forum/topico-duvida-semelhante-a-de-outro-colega-referente-a-funcao-xcarro-vs-xcarros-94478

Um grande abraço e bons estudos!