Tipos de Dados Unsigned

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 😄