1
resposta

return xCarros

Por que não:

return xCarro = 600 

uma vez que quero que retorne para a posição inicial?

1 resposta

Olá, Lucas! Tudo bem?

Como vai você, tudo bem?

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!