Was ist Kotlin?
Kotlin wurde 2011 von JetBrains (IntelliJ IDEA) vorgestellt und ist seit 2019 Googles bevorzugte Sprache für Android. Kotlin läuft auf der JVM (Java-Bibliotheken sind direkt nutzbar), kann aber auch nach JavaScript und nativen Code übersetzt werden (Kotlin Multiplatform).
Gegenüber Java ist Kotlin knapper und sicherer: eingebaute Null-Sicherheit, data class, Erweiterungsfunktionen, Lambdas, when. Server-Frameworks: Ktor, Spring Boot.
Werkzeuge
- IntelliJ IDEA (Community) oder Android Studio: empfohlen
- Kotlin Playground: play.kotlinlang.org, ohne Installation
- Kommandozeile:
kotlinc hallo.kt -include-runtime -d hallo.jarundjava -jar hallo.jar
Das erste Programm
Der Einstiegspunkt ist die Funktion main. Semikolons sind nicht nötig.
fun main() {
println("Hallo Kotlin!")
print("ohne Zeilenumbruch")
println()
val name = "Mia"
println("Hallo $name, 2 + 3 = ${2 + 3}")
}Hallo Kotlin! ohne Zeilenumbruch Hallo Mia, 2 + 3 = 5
printlngibt Text mit Zeilenumbruch aus$namefügt eine Variable ein,${...}einen ganzen Ausdruck (String-Templates)- Kommentare:
// ...,/* ... */, Dokumentation mit/** ... */
Programm mit Argumenten
fun main(args: Array<String>) {
println("Anzahl Argumente: ${args.size}")
for (a in args) println(a)
val eingabe: String? = readLine() // liest eine Zeile (null am Ende)
println("Eingabe: ${eingabe ?: "keine"}")
}Anzahl Argumente: 0 Eingabe: keine
Wie Kotlin sich anfühlt
data class Person(val name: String, val alter: Int)
fun main() {
val leute = listOf(Person("Mia", 17), Person("Tom", 25), Person("Zoe", 31))
val erwachsene = leute.filter { it.alter >= 18 }.map { it.name.toUpperCase() }
println(erwachsene)
println(leute[0])
println(leute.map { it.alter }.sum() / leute.size)
}[TOM, ZOE] Person(name=Mia, alter=17) 24
Eine data class, filter, map und Lambdas mit it: wenige Zeilen, viel Ausdruckskraft. In neueren Kotlin-Versionen schreibst du uppercase() statt toUpperCase() und sumOf { }.
So führst du den Code aus: Online im Kotlin Playground (play.kotlinlang.org) oder lokal mit IntelliJ IDEA bzw. kotlinc hallo.kt -include-runtime -d hallo.jar und java -jar hallo.jar.
Merke
- Kotlin läuft auf der JVM, ist 100 % kompatibel zu Java und die Hauptsprache für Android
- Einstieg:
fun main(), kein Semikolon nötig - String-Templates:
"$name"und"${ausdruck}" - Knapper Code:
data class, Lambdas, Typinferenz
Aufgabe
Gib mit println deinen Namen und dein Geburtsjahr aus und berechne darin mit ${...} dein ungefähres Alter.