Poderia ter feito algo assim:
salarios.forEachIndexed { i, salario ->
salario = salario * aumento
}
?
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!!