Kotlin Standardbibliothek: vollständiger Überblick
Die Kotlin Standardbibliothek (stdlib) ist ein leistungsstarker Satz von Werkzeugen, die direkt in die Sprache integriert sind. Sie bietet alles, was für die tägliche Entwicklung benötigt wird: von der Arbeit mit Collections und Strings bis hin zu Coroutinen und Serialisierung. Im Gegensatz zu Java befreit Kotlin von Boilerplate-Code und bietet eine prägnante und ausdrucksstarke Syntax. In diesem Überblick werden wir die wichtigsten Module der stdlib mit praktischen Beispielen durchgehen.
1. Arbeiten mit Collections
Die Bibliothek bietet unveränderliche (List, Set, Map) und veränderliche (MutableList, MutableSet, MutableMap) Collections mit einem reichhaltigen Satz an Funktionen höherer Ordnung.
val numbers = listOf(1, 2, 3, 4, 5)val doubled = numbers.map { it * 2 } // [2, 4, 6, 8, 10]val even = numbers.filter { it % 2 == 0 } // [2, 4]val sum = numbers.reduce { acc, i -> acc + i } // 15Wichtige Funktionen:
map,filter,flatMap— Transformation und FilterunggroupBy,partition— Gruppierung von Elementenzip,unzip— Zusammenführen von Collectionschunked,windowed— Aufteilen in Teile
2. Strings und reguläre Ausdrücke
Kotlin erweitert String um Methoden, die in Java fehlen: Entfernen von Präfixen/Suffixen, Prüfung auf Leerheit, Vorlagen.
val text = " Hallo, Kotlin! "println(text.trim()) // "Hallo, Kotlin!"println(text.removePrefix(" ")) // "Hallo, Kotlin! "println(text.contains(Regex("Kotlin"))) // true
// Mehrzeilige Strings mit trimIndentval json = """ { "name": "Kotlin", "year": 2016 }""".trimIndent()3. Null-Sicherheit und Elvis-Operator
Eine der wichtigsten Funktionen von Kotlin ist der integrierte Schutz vor NPE. Die Standardbibliothek bietet Funktionen für sichere Aufrufe (?.let) und den Elvis-Operator (?:).
val name: String? = getUserName()val length = name?.length ?: 0 // wenn name == null, dann 0name?.let { println("Name ist $it") } // wird nur ausgeführt, wenn name != null4. Coroutinen (kotlinx.coroutines)
Obwohl Coroutinen formal eine separate Bibliothek sind, gelten sie als Teil des Kotlin-Ökosystems. Sie ermöglichen es, asynchronen Code synchron zu schreiben.
import kotlinx.coroutines.*
fun main() = runBlocking { launch { delay(1000L) println("Welt!") } println("Hallo,")}Hauptkomponenten:
launch— Start einer Coroutine ohne Rückgabewertasync— Start mit Rückgabe einesDeferredwithContext— Wechsel des Kontexts (z. B. zum UI-Thread)- Kanäle (
Channel) — zur Datenübertragung zwischen Coroutinen
5. Serialisierung (kotlinx.serialization)
Integrierte Unterstützung für JSON, Protobuf, CBOR und andere Formate mittels Annotationen.
import kotlinx.serialization.*import kotlinx.serialization.json.*
@Serializabledata class User(val name: String, val age: Int)
fun main() { val user = User("Alice", 30) val json = Json.encodeToString(user) println(json) // {"name":"Alice","age":30} val decoded = Json.decodeFromString<User>(json) println(decoded) // User(name=Alice, age=30)}6. Streams und Sequenzen
Verwenden Sie für faule Berechnungen Sequence anstelle von List — das spart Speicher bei der Arbeit mit großen Datenmengen.
val seq = generateSequence(1) { it + 1 } // unendliche Sequenz .take(10) .filter { it % 2 == 0 } .toList()println(seq) // [2, 4, 6, 8, 10]Erweiterungsfunktionen
Auch in der Bibliothek
Arbeiten mit S3 und Cloud-Speichern in Rust: Die Bibliothek aws-sdk-s3
cereal C++: Vollständiges Tutorial mit Beispielen
JWT-Token in PHP: Die Bibliothek firebase/php-jwt und eine vollständige Anleitung
Winston für JavaScript (Node.js): Vollständige Anleitung mit Beispielen