Kurz: Kotlin wurde 2011 von JetBrains (IntelliJ IDEA) vorgestellt und ist seit 2019 Googles bevorzugte Sprache für Android.
Teil des Kurses Kotlin
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.
Hinweis
Die Beispiele dieses Kurses laufen mit Kotlin 1.3 und verwenden nur Sprachmittel, die in allen neueren Versionen (bis Kotlin 2.x) genauso funktionieren. Wo neuere Versionen Komfort bieten (z. B.
uppercase()statttoUpperCase()), weisen wir darauf hin.
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.
Hallo.kt
fun main() {
println("Hallo Kotlin!")
print("ohne Zeilenumbruch")
println()
val name = "Mia"
println("Hallo $name, 2 + 3 = ${2 + 3}")
}Ausgabe:
Hallo Kotlin!
ohne Zeilenumbruch
Hallo Mia, 2 + 3 = 5printlngibt 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"}")
}Ausgabe:
Anzahl Argumente: 0
Eingabe: keineWie 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)
}Ausgabe:
[TOM, ZOE]
Person(name=Mia, alter=17)
24Eine data class, filter, map und Lambdas mit it: wenige Zeilen, viel Ausdruckskraft. In neueren Kotlin-Versionen schreibst du uppercase() statt toUpperCase() und sumOf { }.
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
Übungsaufgabe
Gib mit println deinen Namen und dein Geburtsjahr aus und berechne darin mit ${...} dein ungefähres Alter.
Quiz zur Selbstkontrolle
Was ist der Einstiegspunkt eines Kotlin-Programms?
- fun main() (richtig)
- class Main
- static void main
- start()
Wofür steht ${...} im String?
- Für einen eingefügten Ausdruck (richtig)
- Für einen Kommentar
- Für einen Import
- Für eine Variable ohne Typ
Auf welcher Plattform läuft Kotlin hauptsächlich?
- Auf der JVM (richtig)
- Nur im Browser
- Nur auf iOS
- Nur auf Windows
Weiter im Kurs
Weiter: val, var und Datentypen
Alle Kapitel: Kotlin im Überblick