Imutabilidade
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
map
de user onde terá o atributoname
Alteraremos o
name
paraCafe com elixir
Vamos criar nosso teste para isso
Duas coisas para notar aqui:
Mesmo atualizando
user
para o novo nome, o valor deuser
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 douser
.
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.
Conclusão
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.
Last updated