Fundamentos de Kotlin
Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
Tipos de dados
Em Kotlin, o tipo de uma variável é decidido pelo seu valor:
val myNum = 5 // Int
val myDoubleNum = 5.99 // Double
val myLetter = 'D' // Char
val myBoolean = true // Boolean
val myText = "Hello" // String
No entanto, você aprendeu no capítulo anterior que é possível especificar o tipo se desejar:
val myNum: Int = 5 // Int
val myDoubleNum: Double = 5.99 // Double
val myLetter: Char = 'D' // Char
val myBoolean: Boolean = true // Boolean
val myText: String = "Hello" // String
Às vezes você tem que especificar o tipo, e muitas vezes não. De qualquer forma, é bom saber o que os diferentes tipos representam.
Os tipos de dados são divididos em diferentes grupos:
- Numbers (Números)
- Characters (Caracteres)
- Booleans (Booleanos)
- Strings (frases)
- Arrays (vetores e matrizes)
Numbers
Os tipos de numbers (os números) são divididos em dois grupos:
Os tipos inteiros armazenam números inteiros, positivos ou negativos (como 123 ou -456), sem decimais.
Os tipos válidos são Byte
, Short
, Int
e Long
.
Os tipos ponto flutuante representam números com uma parte fracionária, contendo um ou mais decimais.
Existem dois tipos: Float
e Double
.
OBS: Se você não especificar o tipo de uma variável numérica, ela geralmente é retornada como Int
para números inteiros e Double
para números de ponto flutuante.
Tipos inteiros
Byte
O tipo de dados Byte
pode armazenar números inteiros de -128 a 127.
Isso pode ser usado em vez de Int
ou outros tipos inteiros para economizar memória quando você tiver certeza de que o valor estará entre -128 e 127.
Exemplo:
Short
O tipo de dados Short
pode armazenar números inteiros de -32768 a 32767.
Exemplo:
Int
O tipo de dados Int
pode armazenar números inteiros de -2147483648 a 2147483647.
Exemplo:
Long
O tipo de dados Long
pode armazenar números inteiros de -9223372036854775807 a 9223372036854775807.
Isso é usado quando Int
não é grande o suficiente para armazenar o valor.
Opcionalmente, você pode terminar o valor com um "L".
Exemplo:
Diferença entre Int e Long
Um número inteiro é um Int
desde que seja até 2147483647. Se for além disso, esse inteiro é definido como Long
.
val myNum1 = 2147483647 // Int
val myNum2 = 2147483648 // Long
Tabela resumo dos tipos inteiros
Tipo | N° de bits | Valor mínimo | Valor máximo |
---|---|---|---|
Byte | 8 | -128 | 127 |
Short | 16 | -32768 | 32767 |
Int | 32 | -2.147.483.648 (ou -2³¹) | 2.147.483.647 (ou 2³¹ - 1) |
Long | 64 | -9.223.372.036.854.775.808 (ou -2⁶³) | 9.223.372.036.854.775.807 (ou 2⁶³ - 1) |
Tipos de ponto flutuante
O tipo de dados Ponto Flutuante representa números com um decimal, como 9,99 ou 3,14515.
Os tipos de dados Float
e Double
podem armazenar números fracionários.
Exemplo de Float:
Exemplo de Double:
Tabela resumo dos tipos ponto flutuante
Tipo | N° de bits | Bits significativos | Bits de expoente | Dígitos decimais |
---|---|---|---|---|
Float | 32 | 24 | 8 | 6-7 |
Double | 64 | 53 | 11 | 15-16 |
Quando usar Float ou Double?
A precisão de um valor de ponto flutuante indica quantos dígitos o valor pode ter após o ponto decimal (a vírgula). A precisão do
Float
é de apenas seis ou sete dígitos decimais, enquanto as variáveisDouble
têm uma precisão de cerca de 15 dígitos. Portanto, é mais seguro usarDouble
para a maioria dos cálculos.Observe também que você deve terminar o valor de um tipo
Float
com um "F".
Números científicos
Um número de ponto flutuante também pode ser um número científico com um "e" ou "E" para indicar a potência de 10.
Exemplo:
Booleans
Muitas vezes, na programação, você precisará de um tipo de dados que só pode ter um de dois valores, como:
- SIM / NÃO
- LIGADO / DESLIGADO
- VERDADEIRO / FALSO
Para isso, o Kotlin possui um tipo de dado chamado Boolean
, que pode assumir os valores true
(verdadeiro) ou false
(falso).
Exemplo:
Expressões Booleanas
Uma expressão booleana retorna um valor booleano: true
ou false
.
Você pode usar um operador de comparação, como o operador maior que (>), menor que (<), igual (==), etc, para descobrir se uma expressão (ou uma variável) é verdadeira.
Exemplo:
Ou ainda mais fácil:
Mais um exemplo:
O valor booleano de uma expressão é a base para todas as comparações e condições Kotlin.
Characters
O tipo de dados Char
é usado para armazenar um único caractere.
Um valor char deve estar entre aspas simples, como 'A' ou 'c'.
Exemplo:
Em Kotlin, você não pode usar valores ASCII para exibir determinados caracteres. O valor 66 geraria um "B" em Java, por exemplo, mas geraria um erro em Kotlin.
Exemplo:
Strings
O tipo de dados String
é usado para armazenar texto.
Uma string contém uma coleção de caracteres entre aspas duplas.
var greeting = "Hello"
var greeting: String = "Hello"
Exemplo:
Nota: Se você deseja criar uma String sem atribuir o valor (e atribuir o valor posteriormente), deve especificar o tipo ao declarar a variável.
Exemplo (vai dar erro por não especificar o tipo ao declarar a variável):
Mesmo exemplo escrito de forma correta (sem erros):
Acessando uma string
Para acessar os caracteres (elementos) de uma string, você deve consultar o número do índice entre colchetes ([]
).
Os índices de string começam com 0. No exemplo abaixo, acessamos o primeiro e o terceiro elemento em txt
:
Assim, [0] é o primeiro elemento. [1] é o segundo elemento, [2] é o terceiro elemento, etc.
Comprimento de uma String
Uma String em Kotlin é um objeto que contém propriedades e funções que podem realizar certas operações em strings, escrevendo um caractere de ponto (.
) após a variável de string específica. Por exemplo, o comprimento de uma string pode ser encontrado com a propriedade length
, como mostrado no exemplo a seguir:
Funções de String
Existem muitas funções de String disponíveis Kotlin, por exemplo, toUpperCase()
e toLowerCase()
.
Para enconntrar mais funções úteis olhe sempre a documentação da linguagem.
Comparando Strings
A função compareTo(string)
compara duas strings e retorna 0 se ambas forem iguais.
Exemplo:
Encontrando uma string dentro de uma string
A função indexOf()
retorna o índice (a posição) da primeira ocorrência de um texto especificado em uma string (incluindo espaços em branco).
Exemplo:
Lembre-se que o Kotlin conta as posições a partir do zero. 0 é a primeira posição em uma string, 1 é a segunda, 2 é a terceira, etc.
Aspas dentro de uma string
Para usar aspas dentro de uma string, use aspas simples (') ou acrescente um contra-barra antes das aspas duplas (\"
).
Exemplo:
Concatenação de Strings
O operador +
pode ser usado entre strings para adicioná-las para formar uma nova string.
Isso é chamado de concatenação.
Exemplo:
Observe que adicionamos um texto vazio (" ") para criar um espaço entre firstName
e lastName
na impressão.
Também é possível usar a função plus()
para concatenar duas strings.
Exemplo:
Expressões modelo/Interpolação
Em vez de concatenação, você também pode usar expressões modelo (template strings), que é uma maneira fácil de adicionar variáveis e expressões dentro de uma string.
Uma expressão modelo começa com um cifrão ($
).
Exemplo:
"String Templates" é um recurso popular do Kotlin, pois reduz a quantidade de código. Por exemplo, você não precisa especificar um espaço em branco entre firstName e lastName, como fizemos no exemplo de concatenação.
Arrays
Arrays são usados para armazenar vários valores em uma única variável, em vez de declarar variáveis separadas para cada valor.
Você aprenderá mais sobre arrays no capítulo Arrays.
Conversão de tipo
A conversão de tipo é quando você converte o valor de um tipo de dados para outro tipo.
Em Kotlin, a conversão de tipo numérico é diferente de Java.
Por exemplo, não é possível converter um tipo Int
em um tipo Long
com o seguinte código:
Para converter um tipo de dados numérico para outro tipo, você deve usar uma das seguintes funções:
toByte()
, toShort()
, toInt()
, toLong()
, toFloat()
, toDouble()
ou toChar()
.
Exemplo:
Fonte:
https://www.w3schools.com/kotlin/kotlin_variables.php
https://www.studytonight.com/kotlin/kotlin-variables-and-constants