Biblioteca Padrão Kotlin: Visão Geral Completa
A biblioteca padrão Kotlin (stdlib) é um poderoso conjunto de ferramentas que acompanha o compilador e fornece funcionalidades básicas para o desenvolvimento diário. Ao contrário do Java, onde muitas operações exigem bibliotecas externas, o Kotlin oferece soluções integradas para trabalhar com coleções, strings, corrotinas, serialização e entrada/saída de arquivos. Neste artigo, detalharemos os principais módulos e funções da biblioteca padrão Kotlin com exemplos práticos.
1. Tipos Básicos e Suas Capacidades
A biblioteca inclui funções estendidas para tipos primitivos e strings:
- Tipos Numéricos —
Int,Double,Longe suas extensões (.toInt(),.coerceIn()). - Strings — templates (
"Hello, $name"), strings multilinha ("""..."""), métodosreplace(),split(),trimIndent(). - Ranges —
1..10,step 2,downTo.
// Exemplo de trabalho com strings e rangesfun main() { val name = "Kotlin" val greeting = "Hello, $name!" println(greeting) // Hello, Kotlin!
for (i in 1..5 step 2) { println(i) // 1, 3, 5 }}2. Coleções: List, Set, Map
O Kotlin divide as coleções em mutáveis (MutableList, MutableSet, MutableMap) e imutáveis (List, Set, Map). Principais capacidades:
- Criação —
listOf(),setOf(),mapOf(). - Filtragem e Transformação —
filter(),map(),flatMap(),groupBy(). - Agregação —
sum(),count(),reduce(),fold(). - Ordenação —
sorted(),sortedBy().
// Exemplo de trabalho com coleçõesfun main() { val numbers = listOf(1, 2, 3, 4, 5) val evenSquares = numbers .filter { it % 2 == 0 } .map { it * it } println(evenSquares) // [4, 16]
val grouped = numbers.groupBy { if (it % 2 == 0) "even" else "odd" } println(grouped) // {odd=[1, 3, 5], even=[2, 4]}}3. Sequências (Sequences)
Para avaliação lazy, o Kotlin oferece Sequence. Isso é especialmente útil ao trabalhar com grandes volumes de dados:
fun main() { val result = (1..1_000_000) .asSequence() .filter { it % 2 == 0 } .map { it * 2 } .take(5) .toList() println(result) // [4, 8, 12, 16, 20]}4. Null-Safety e Operador Elvis
Uma das principais características do Kotlin é o trabalho seguro com null. A biblioteca fornece:
- Operador Elvis (
?:) — define um valor padrão. - Chamada Segura (
?.) — previne NullPointerException. - Função let — executa código apenas se o objeto não for null.
fun main() { val name: String? = null val length = name?.length ?: 0 println(length) // 0
name?.let { println("Name is not null: $it") }}5. Trabalho com Arquivos e Streams
A biblioteca padrão inclui extensões convenientes para java.io.File:
readText(),writeText()— leitura/escrita de strings.readLines()— leitura linha por linha.useLines()— trabalho seguro com streams.copyTo(),