Imutabilidade
Last updated
Was this helpful?
Last updated
Was this helpful?
Aviso sobre esse capÃtulo
Abordarei apenas o básico para seguirmos nos estudos. Imutabilidade é um assunto complexo. Entender as vantagens e desvantagens pode consumir tempo e também confundir quem está começando em linguagens funcionais. Por hora, irei somente abordar o básico para entendimento da linguagem e para darmos continuidade nos estudos.
Como o próprio nome diz, imutabilidade significa imutável, algo constante, que não muda. Isso quer dizer, toda definição uma vez feita, nunca mudará. Para termos valores diferente, por exemplo, em uma variável, nós precisaremos sobrepor ela, jogando fora todo o valor antigo e adotando o novo valor.
Vamos a um exemplo simples:
Criaremos um de user onde terá o atributo name
Alteraremos o name
para Cafe com elixir
Vamos criar nosso teste para isso
Duas coisas para notar aqui:
Mesmo atualizando user
para o novo nome, o valor de user
não se alterou;
Após a atualização, é retornado o valor atualizado do map. Esse novo valor nós adicionamos dentro de updated_user
e essa variável tem a atualização do user
.
Caso você queira continuar com a mesma variável, porém, com o novo valor, você vai precisar sobrepor o valor da variável anterior.
Tudo no elixir é imutável, mantenha isso em mente é um conceito importante.
Abordamos o básico de imutabilidade. É um ponto importante no estudo de linguagens funcionais. Ela nos ajuda a evitar diversos problemas na utilização da concorrência, nos dando uma boa vantagem em relações a linguagens mutáveis.
Lembrando, toda vez que realizarmos uma mudança de dados, o dado original nunca será alterado, você terá que cuidar dessa re-assinatura ou sobreposição de valores.