Não entendi a razão de xCarro ser usada como paramêtro na função e no retorno. Por que xCarro e não xCarros?
Não entendi a razão de xCarro ser usada como paramêtro na função e no retorno. Por que xCarro e não xCarros?
Olá, Filipe. 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?
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 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!
Agradecido!! :)