Poderia ter feito algo assim:
salarios.forEachIndexed { i, salario ->
salario = salario * aumento
}?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Poderia ter feito algo assim:
salarios.forEachIndexed { i, salario ->
salario = salario * aumento
}?
Olá Erica, tudo bem com você?
Dessa forma não funcionaria pois o salario que estamos acessando dentro do array salarios é um valor imutável. Portanto, nós caímos naquele probleminha que o instrutor mostrou no minuto 5:11 da videoaula:
[05:11] Mas não funciona, porque esse “salario” aqui, que o “for” nos entrega, é uma variável imutável. Ele pega o valor de um “salario” e coloca em uma variável imutável para nós, para podermos trabalhar com esse número. Mas não podemos modificar ele, não conseguimos modificar o valor de “salario”, então não conseguimos fazer isso aqui. Nós temos que atribuir de uma outra forma.
Para esse caso teríamos que atribuir o resultado da multiplicação do salario pelo aumento ao índice do array. Deixando o for com essa cara:
salarios.forEachIndexed { i, salario ->
salario[i] = salario * aumento
}
Dessa forma, jogamos fora o valor imutável que estava na primeira posição do array salarios e colocamos em seu lugar o resultado de salario * aumento. Inclusive, fazer uso do índice i para acessarmos as posições do array é justamente a motivação por trás do forEachIndexed que nos disponibiliza o índice i e o valor de salario.
Espero que isso ajude. Se ficou alguma dúvida é só avisar!
Forte abraço e bons estudos!!