O que é a Biblioteca Padrão Kotlin?
A Biblioteca Padrão Kotlin (kotlin-stdlib) é um conjunto de módulos que fazem parte da linguagem e fornecem ao desenvolvedor soluções prontas para tarefas do dia a dia. Ao contrário do Java, onde muitas coisas precisam ser escritas manualmente ou com bibliotecas de terceiros, o Kotlin oferece ferramentas internas poderosas para trabalhar com coleções, strings, fluxos, corrotinas e serialização. A biblioteca é totalmente compatível com Java, mas expande suas capacidades, tornando o código mais conciso e seguro.
Módulos Principais da Biblioteca Padrão
- kotlin-stdlib — o núcleo da biblioteca: coleções, ranges, sequences, funções padrão (let, apply, also, run).
- kotlinx-coroutines — suporte para programação assíncrona através de corrotinas.
- kotlinx-serialization — serialização/desserialização em JSON, Protobuf e outros formatos.
- kotlin-test — ferramentas para testes unitários.
- kotlin-reflect — reflexão e trabalho com tipos em tempo de execução.
Coleções e Sequências
Um dos pontos fortes do Kotlin é o trabalho com coleções. A biblioteca oferece coleções mutáveis (mutable) e imutáveis (immutable). Todas as operações principais (filtragem, transformação, agrupamento) são implementadas como funções de extensão.
Exemplo: trabalhando com listas
val numbers = listOf(1, 2, 3, 4, 5, 6)val evenSquares = numbers .filter { it % 2 == 0 } .map { it * it } .sortedDescending()println(evenSquares) // [36, 16, 4]Neste exemplo, usamos uma cadeia de chamadas: filtragem, transformação e ordenação. Todas as operações são executadas de forma lazy até o momento da chamada da operação terminal (neste caso, a impressão). Para grandes conjuntos de dados, recomenda-se usar Sequence.
Sequences para cálculos lazy
val largeList = (1..1_000_000).toList()val result = largeList.asSequence() .filter { it % 2 == 0 } .map { it * 2 } .take(10) .toList()println(result) // [4, 8, 12, 20, 24, 28, 32, 36, 40]Ao contrário das coleções comuns, Sequence não cria listas intermediárias, economizando memória ao trabalhar com grandes volumes de dados.
Corrotinas: Assincronicidade sem Dor
O módulo kotlinx-coroutines é a forma padrão de trabalhar com código assíncrono em Kotlin. Ele substitui callbacks e RxJava, fornecendo uma sintaxe sequencial simples.
Exemplo simples de corrotina
import kotlinx.coroutines.*
fun main() = runBlocking { val result = async { delay(1000L) "Pronto!" } println("Aguardando...") println(result.await()) // "Pronto!" após 1 segundo}Conceitos-chave:
runBlocking— bloqueia a thread atual até a conclusão da corrotina (usado em main).async— inicia uma corrotina e retorna umDeferred(análogo ao Future).await— suspende a corrotina até obter o resultado.
Concorrência Estruturada
fun main() = runBlocking { launch { repeat(3) { i -> delay(500L) println("Tarefa $i concluída") } } println("Corrotina principal continua trabalhando")}Graças à concorrência estruturada, todas as corrotinas filhas são automaticamente concluídas quando a corrotina pai termina. Isso evita vazamentos de memória e torna o código previsível.
Serialização de Dados (kotlinx.serialization)
O módulo kotlinx-serialization permite converter objetos Kotlin em JSON, XML, Protobuf e outros formatos sem usar reflexão. A serialização funciona em tempo de compilação, tornando-a rápida e
Também na biblioteca
Machine Learning em Go: bibliotecas para Golang (ML, redes neurais, PLN)
OneOf para C# (.NET): guia completo com exemplos
Geração de relatórios PDF em Swift para iOS e macOS com PDFKit e Core Graphics
Symfony/Console para PHP: guia completo com exemplos