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
JWT-Tokens in PHP: Vollständiger Leitfaden zur Authentifizierung und Autorisierung
Dapper C# (.NET): Komplette Anleitung mit Beispielen
Maschinelles Lernen mit C#: Bibliotheken ML.NET und Accord.NET
openai-api-rs Rust: Vollständige Anleitung mit Codebeispielen
Arbeiten mit Daten in Rust: Überblick über Bibliotheken für Zeit und Datum