Responda conforme a questão:
O que realmente significa o conceito de imutabilidade? O que ocorre com variáveis quando há necessidade de mudarem de valor? (4 escores)
O que realmente significa o conceito de imutabilidade? O que ocorre com variáveis quando há necessidade de mudarem de valor? (4 escores)
Passo 1
O enunciado pergunta qual é o verdadeiro significado do conceito de imutabilidade em linguagens de programação e o que acontece internamente com as variáveis quando precisamos atribuir a elas um novo valor. Vamos ver a teoria por trás desse conceito e em seguida descrever o comportamento prático.
Passo 2
Imutabilidade significa que, uma vez criado, o valor de um objeto não pode ser alterado. Em vez de “modificar” o objeto existente, toda operação que parecer alterar acaba criando um novo objeto com o resultado desejado, deixando o original intacto.
Passo 3
Em linguagens que tratam tipos imutáveis (por exemplo, strings em Java, inteiro em Haskell, tuplas em Python), a variável funciona como um rótulo ou referência a um objeto específico. Quando você faz algo como
e depois
não há mudança em “5”: existe um objeto inteiro com valor 5 e outro com valor 7, e a variável
simplesmente deixa de apontar para o 5 e começa a apontar para o 7.
Passo 4
Na prática, ao “mudar” o valor de uma variável imutável:
- O sistema aloca ou reutiliza um bloco de memória para armazenar o novo valor.
- A referência da variável é atualizada para esse novo bloco.
- Se ninguém mais referenciar o objeto antigo, ele fica elegível para coleta de lixo (garbage collection).
Ou seja, a variável não altera o objeto, ela apenas passa a referenciar outro objeto.
Resposta
Imutabilidade é a propriedade de um valor permanecer inalterado após sua criação. Quando atribuímos um “novo valor” a uma variável imutável, na verdade criamos um objeto novo e atualizamos o rótulo (a referência) da variável para esse novo objeto; o valor antigo permanece intacto até não ser mais referenciado, quando então pode ser coletado pelo garbage collector.