EMZETT.
Login

Kurz: Kotlin wurde 2011 von JetBrains (IntelliJ IDEA) vorgestellt und ist seit 2019 Googles bevorzugte Sprache für Android.

Teil des Kurses Kotlin

Kapitel 1 von 13 im Kurs Kotlin. Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.

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() statt toUpperCase()), 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.jar und java -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 = 5
  • println gibt Text mit Zeilenumbruch aus
  • $name fü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: 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)
}

Ausgabe:

[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 { }.

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

Weiter im Kurs

Weiter: val, var und Datentypen

Alle Kapitel: Kotlin im Überblick