Tipos de Dados Unsigned
Observação: O arquivo utilizado neste conteúdo que fala sobre tipos de dados unsigned é o 4-tiposDeDadosUnsigned.kt. Já o arquivo que fala sobre variáveis mutáveis e imutáveis é o 5-variaveisMutaveisImutaveis.kt.
Neste conteúdo você vai aprender um pouco mais sobre os tipos de dados da categoria unsigned, e recapitular variáveis mutáveis e imutáveis.
Tipo de Dados Unsigned
Existem alguns tipos de dados classificados como 'unsigned', que são do tipo sem sinal.
Um número classificado como unsigned perde a parte negativa, pois em alguns casos não queremos trabalhar com números negativos:
println("ULong Max - ${ULong.MAX_VALUE} - ${ULong.MIN_VALUE}")
println("UInt Max - ${UInt.MAX_VALUE} - ${UInt.MIN_VALUE}")
println("UShort Max - ${UShort.MAX_VALUE} - ${UShort.MIN_VALUE}")
println("UByte Max - ${UByte.MAX_VALUE} - ${UByte.MIN_VALUE}")
Como no unsigned não é possível declarar qualquer número negativo, o código abaixo irá gerar um erro de compilação:
//val abc: UInt = -1u//Aqui ele dá erro de compilação pois não existe
Exemplos de variáveis que fazem o uso dos tipos unsigned:
val abcd: UShort = 10u//Precisamos declarar o u no final
val abcde: UByte = 10u//Mesma lógica anterior...
val abcdef: ULong = 100u//Mesma logica anterior...
Observação: Não existe 'unsigned' voltados para double e float, sendo reservados para números inteiros.
Variáveis Mutáveis
Como visto no conteúdo passado, uma variável é considerada mutável no Kotlin, quando ela consegue alterar o seu valor, desde que continue usando o mesmo tipo de dado primitivo.
Como é o caso das variáveis do tipo var:
//Variáveis Mutáveis:
var nome = "Micilini"//variaveis do tipo var são mutáveis
nome = "Roll"//Ou seja, elas podem ser modificadas
Lembrando que não podemos reatribuir uma variável mais de uma vez, como por exemplo:
//var nome = "Lucas"//Esse código dá problema, pois não podemos reatribuir usando o var novamente...
Lembrando também que não podemos alterar o seu tipo de dado primitivo:
//nome = 2050 como a variável foi declarada como tipo STRING, não podemos alterar seu tipo
Isso significa que se uma variável foi instanciada com o tipo STRING, ela sempre será do tipo STRING. E a mesma lógica é aplicada a outros tipos.
Variáveis Imutáveis
Como visto em conteúdos anteriores, nós temos algumas variáveis que assim que são declaradas não conseguem ter seus valores alterados (imutáveis), como é o caso das variáveis do tipo val.
//Variáveis Imutáveis:
val idade = 25//Funciona como constantes, ou seja, variáveis que não mudam
//idade = 99//Não podemos alterar a variável do tipo val
É importante ressaltar que as variáveis do tipo val é uma boa prática, e a própria linguagem recomenda a sua utilização, principalmente quando ela nunca é modificada.
Essas variáveis costumam ser utilizadas em instâncias de classes, funções e classes anônimas.
Conclusão
Neste conteúdo você aprendeu um pouco mais sobre os tipos de dados classificados como unsigned, e aprendeu um pouco mais sobre as variáveis mutáveis do tipo var, e imutáveis do tipo val.
Até o próximo conteúdo 😄