Abo
  • Services:
Anzeige
Kotlin ist ein Leuchtturmprojekt für die Android-Entwicklung.
Kotlin ist ein Leuchtturmprojekt für die Android-Entwicklung. (Bild: Jetbrains/Apache License 2.0)

Nebenläufigkeit und kein null

In Java und vielen anderen Sprachen lassen sich Variablen auf den Wert null setzen. Beim (versehentlichen) Zugriff erhält man dann eine Null-Pointer-Exception (kurz NPE). Um diese NPEs zu reduzieren, dürfen in Kotlin Variablen standardmäßig kein null enthalten. Mit dem Fragezeichen lässt sich der Compiler jedoch umstimmen:

  1. var x: String? = "Hallo"

Anzeige

Der Aufruf von x.length() würde jetzt zu einer NPE führen. Dies kann der sogenannte Safe Call Operator ? verhindern:

  1. x?.length()

Wenn x einen String enthält, liefert dieser Aufruf seine Länge, andernfalls null. Ergänzend gibt es noch den Elvis-Operator ?:. Das folgende Beispiel liefert den Wert -1, wenn x den Wert null enthält:

  1. val z = x?.length ?: -1

Abschließend steht x immer für einen String, der dann aber unter Umständen leer ist.

Ganz nebenbei

Neu in Kotlin 1.1 sind die sogenannten Coroutinen. Ähnlich wie Threads können sie Berechnungen asynchron ausführen und diese pausieren. Anders als Threads sollen selbst mehrere Tausend nebenläufige Coroutinen keine nennenswerte Performance kosten. Zur Verwaltung der Coroutinen stellt die Standardbibliothek passende Funktionen bereit. So lässt sich eine Coroutine schnell mit der Funktion launch() anwerfen und via delay() vorübergehend schlafen legen, während async() und avail() das aus Java bekannte async/avail-Prinzip umsetzen. Mit Coroutinen lassen sich zudem Generatoren erzeugen. Diese Funktionen merken sich ihren Zustand für den nächsten Aufruf:

  1. val natuerlicheZahlen = buildSequence {
  2. var a = 1
  3.  
  4. while (true) {
  5. yield(a)
  6. a = a + 1
  7. }
  8. }
  9. natuerlicheZahlen.take(10).forEach { x -> print("$x ") }

Hier erzeugt buildSequence() eine Folge mit der ihr übergebenen Lambda-Funktion. Letztgenannte bildet die Coroutine und zählt im Beispiel einfach eine Variable hoch. Der Aufruf von yield() hält die Coroutine an und liefert die aktuelle Zahl zurück. Derzeit gelten die Coroutinen noch als experimentell, was sich aber bereits mit der nächsten Kotlin-Version ändern soll.

Viele weitere Details

Kotlin unterstützt noch viele weitere Konzepte. So dürfen Entwickler wie in Java über sogenannte Annotationen Meta-Informationen in ihren Code einstreuen. Darüber hinaus kennt Kotlin die vor allem von funktionalen Sprachen unterstützte Endrekursion (Tail Recursion). Funktionen und Klassen dürfen Entwickler ineinander verschachteln und die Klassen versiegeln (Sealed Classes). Mit passenden Funktionen, Lambda-Ausdrücken und den Kurzschreibweisen lassen sich zudem Dokumente, wie etwa eine HTML-Seite, in deskriptiver Form notieren. Vor allem Groovy-Entwickler schätzen diese sogenannten Builder, die in Kotlin sogar typsicher sind:

  1. val seite = html {
  2. head {
  3. title {"Meine Website"}
  4. }
  5. body {
  6. p {"Hallo Welt!"}
  7. }
  8. }

Kotlin besteht aus einem bunten Strauß angesagter Programmiertechniken. Dennoch wirkt die Sprache wie aus einem Guss. Mechanismen wie die statische Typableitung sorgen für weniger Fehler, die Kompatibilität zu Javascript und insbesondere Java erlaubt die Nutzung von bestehenden Bibliotheken. Der Quellcode ist zwar kompakt, an einige Konstrukte müssen sich aber insbesondere Java-Umsteiger erst gewöhnen. Die gute Dokumentation und vor allem die Testumgebung auf der Kotlin-Homepage vereinfachen den Einstieg. Kein Wunder also, dass Kotlin zunehmend mehr Freunde findet.

 Schnittstellen sind auch nur Klassen

eye home zur Startseite
Proctrap 29. Okt 2017

immer diese Threadschändung

Themenstart

MiBx 18. Okt 2017

Das ist schon ganz gut so, dass Du zurück gewechselt bist, wenn Du Dich nicht wirklich...

Themenstart

horotab 05. Okt 2017

Wer Methoden schreibt, die so lang sind, mach idR sowieso etwas falsch. Im Idealfall hat...

Themenstart

demonkoryu 04. Okt 2017

Closures sind nicht "hip" sondern eine nützliche Abstraktion, die in den letzten Jahren...

Themenstart

Kommentieren



Anzeige

Stellenmarkt
  1. Deutsche Lebens-Rettungs-Gesellschaft e.V. (DLRG), Bad Nenndorf
  2. über Hanseatisches Personalkontor Bodensee, Salem
  3. Unfallkasse Baden-Württemberg, Karlsruhe, Stuttgart
  4. Melitta Business Service Center GmbH & Co. KG, Minden


Anzeige
Hardware-Angebote
  1. täglich neue Deals

Folgen Sie uns
       


  1. Samsung

    Erste Details zum Galaxy S9

  2. Cyber Monday

    Streiks an drei Amazon-Standorten

  3. Echo Show vs. Fire HD 10 im Test

    Alexa, zeig's mir!

  4. Apple

    Teure Lederhülle für iPhone X deckt Mikrofon ab

  5. Notruf

    Siri ruft unnötig die Feuerwehr

  6. Netzneutralität

    US-Behörde FCC will Internetprovidern alles erlauben

  7. Fraunhofer Fokus

    Metaminer soll datensammelnde Apps aufdecken

  8. Onlinehandel

    Bundesgerichtshof greift Paypal-Käuferschutz an

  9. Verbraucherschutz

    Sportuhr-Hersteller gehen unsportlich mit Daten um

  10. Core-i-Prozessoren

    Intel bestätigt gravierende Sicherheitsprobleme in ME



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Fire TV (2017) im Test: Das Streaminggerät, das kaum einer braucht
Fire TV (2017) im Test
Das Streaminggerät, das kaum einer braucht
  1. Neuer Fire TV Amazons Streaming-Gerät bietet HDR für 80 Euro
  2. Streaming Update für Fire TV bringt Lupenfunktion
  3. Streaming Amazon will Fire TV und Echo Dot vereinen

Oneplus 5T im Test: Praktische Änderungen ohne Preiserhöhung
Oneplus 5T im Test
Praktische Änderungen ohne Preiserhöhung
  1. Smartphone Neues Oneplus 5T kostet weiterhin 500 Euro
  2. Sicherheitsrisiko Oneplus-Smartphones kommen mit eingebautem Root-Zugang
  3. Smartphone-Hersteller Oneplus will Datensammlung einschränken

Universal Paperclips: Mit ein paar Sexdezillionen Büroklammern die Welt erobern
Universal Paperclips
Mit ein paar Sexdezillionen Büroklammern die Welt erobern
  1. Disney Marvel Heroes wird geschlossen
  2. Starcraft 2 Blizzard lästert über Pay-to-Win in Star Wars Battlefront 2
  3. Free to Play World of Tanks bringt pro Nutzer und Monat 3,30 Dollar ein

  1. Re: 16A aus Steckdose....

    minifisch | 10:33

  2. Re: Lootboxen der 90er und 2000er

    |=H | 10:30

  3. Re: Notruf: Seitentaste und Lautstärke - Lustig...

    Anonymouse | 10:30

  4. Zwei Stühle, eine Meinung.

    sleeksorrow | 10:30

  5. Re: Kunden lieben es, gemolken zu werden

    ChMu | 10:29


  1. 10:30

  2. 10:20

  3. 08:55

  4. 07:41

  5. 07:30

  6. 07:12

  7. 17:45

  8. 17:20


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel