Tipos de dados
Números, caracteres, booleanos, strings e arrays.
Kotlin oferece uma ampla gama de tipos de dados, desde os básicos como números inteiros e ponto flutuante, até tipos mais específicos como datas e outros. Aqui estão os tipos mais comuns que você encontrará em Kotlin.
Integers
Kotlin fornece tipos numéricos para representar valores inteiros de tamanhos variados.
Byte
O tipo Byte ocupa 8 bits e pode armazenar valores entre -128 e 127:
val byteValue: Byte = 100
Short
O tipo Short ocupa 16 bits e pode armazenar valores entre -32.768 e 32.767:
val shortValue: Short = 1000
Int
O tipo Int é o mais utilizado para inteiros. Ele ocupa 32 bits e pode armazenar valores de −2^31 a 2^31-1:
val intValue: Int = 123456
Long
O tipo Long ocupa 64 bits e pode armazenar valores entre -2^63 a 2^63-1:
val longValue: Long = 123456789L
Floating point
Os números de ponto flutuante em Kotlin podem ser representados pelos tipos Float e Double.
Float
O tipo Float ocupa 32 bits e é geralmente usado quando é necessária menos precisão (com 6 a 7 dígitos de precisão
decimal):
val floatValue: Float = 3.14f
Double
O tipo Double é mais preciso, ocupando 64 bits (15 a 16 dígitos de precisão decimal):
val doubleValue: Double = 3.14159265359
Char
O tipo Char é utilizado para representar um único caractere, como letras ou símbolos:
val letter: Char = 'A'
Boolean
O tipo Boolean representa valores de verdade, com possíveis valores true ou false:
val isValid: Boolean = true
Strings
O tipo String representa uma sequência de caracteres. Strings são imutáveis em Kotlin:
val greeting: String = "Hello, Kotlin!"
Arrays
Em Kotlin, arrays são representados pelo tipo Array. Eles podem armazenar valores de tipos primitivos ou objetos:
val numbers = arrayOf(1, 2, 3)
val strings = arrayOf("Kotlin", "Java", "Python")
Coleções
Além dos arrays, Kotlin oferece suporte a coleções, como listas (List),
conjuntos (Set) e mapas (
Map). Estas são altamente utilizadas em situações em que se precisa de estruturas de dados dinâmicas.
List
Uma lista imutável (não pode ser alterada):
val languages: List<String> = listOf("Kotlin", "Java", "Python")
Uma lista mutável (pode ser alterada):
val mutableLanguages: MutableList<String> = mutableListOf("Kotlin", "Java")
mutableLanguages.add("Python")
Set
Um conjunto (Set) não permite elementos duplicados:
val uniqueNumbers: Set<Int> = setOf(1, 2, 3, 3)
Map
Um mapa (Map) armazena pares de chave-valor:
val userRoles: Map<String, String> = mapOf("admin" to "Administrator", "user" to "Regular User")
Any
O tipo Any é a raiz da hierarquia de tipos em Kotlin. Qualquer classe ou tipo em Kotlin herda de Any:
val something: Any = "This can be anything"
Date
Para trabalhar com datas e horários na JVM, use a API java.time, que é imutável e segura entre threads. As classes
antigas java.util.Date e java.util.Calendar são legadas e devem ser evitadas em código novo. Em projetos
multiplataforma, a biblioteca kotlinx-datetime cumpre o mesmo papel.
LocalDate
import java.time.LocalDate
val today: LocalDate = LocalDate.now()
val nextWeek: LocalDate = today.plusWeeks(1)
println("Hoje: $today, daqui a uma semana: $nextWeek")
LocalDateTime
import java.time.LocalDateTime
val currentDateTime: LocalDateTime = LocalDateTime.now()
println(currentDateTime)
Outros tipos úteis
Unit
O tipo Unit em Kotlin é equivalente ao void em outras linguagens, representando a ausência de um valor de retorno.
fun printMessage(message: String): Unit {
println(message)
}
Nothing
O tipo Nothing indica que uma função nunca retorna (usado para funções que lançam exceções ou entram em loops
infinitos):
fun fail(message: String): Nothing {
throw IllegalStateException(message)
}