Abo
  • Services:

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:

Stellenmarkt
  1. Pilz GmbH & Co. KG, Ostfildern
  2. über duerenhoff GmbH, Frankfurt

  1. var x: String? = "Hallo"

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
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6


Anzeige
Top-Angebote
  1. 39,99€
  2. (heute u. a. Roccat Tyon Maus 69,99€, Sandisk 400 GB Micro-SDXC-Karte 92,90€)
  3. (heute u. a. Yamaha AV-Receiver 299,00€ statt 469,00€)
  4. (u. a. John Wick, Sicario, Deepwater Horizon, Die große Asterix Edition, Die Tribute von Panem)

Proctrap 29. Okt 2017

immer diese Threadschändung

MiBx 18. Okt 2017

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

Proctrap 17. Okt 2017

kwt

horotab 05. Okt 2017

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

demonkoryu 04. Okt 2017

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


Folgen Sie uns
       


Pocophone F1 - Test

Das Pocophone F1 gehört zu den günstigsten Topsmartphones auf dem Markt - nur 330 Euro müssen Käufer für das Gerät bezahlen. Dafür bekommen sie eine Dualkamera und einen Snapdragon 845. Wer mit ein paar Kompromissen leben kann, macht mit dem Smartphone nichts falsch.

Pocophone F1 - Test Video aufrufen
Kaufberatung: Der richtige smarte Lautsprecher
Kaufberatung
Der richtige smarte Lautsprecher

Der Markt für smarte Lautsprecher wird immer größer. Bei der Entscheidung für ein Gerät sind Kaufpreis und Klang wichtig, ebenso die Wahl für einen digitalen Assistenten: Alexa, Google Assistant oder Siri? Wir geben eine Übersicht.
Von Ingo Pakalski

  1. Amazon Alexa Echo Sub verhilft Echo-Lautsprechern zu mehr Bass
  2. Beosound 2 Bang & Olufsen bringt smarten Lautsprecher für 2.000 Euro
  3. Google und Amazon Markt für smarte Lautsprecher wächst weiter stark

Life is Strange 2 im Test: Interaktiver Road-Movie-Mystery-Thriller
Life is Strange 2 im Test
Interaktiver Road-Movie-Mystery-Thriller

Keine heile Teenagerwelt mit Partys und Liebeskummer: Allein in den USA der Trump-Ära müssen zwei Brüder mit mexikanischen Wurzeln in Life is Strange 2 nach einem mysteriösen Unfall überleben. Das Adventure ist bewegend und spannend - trotz eines grundsätzlichen Problems.
Von Peter Steinlechner

  1. Adventure Leisure Suit Larry landet im 21. Jahrhundert

Mobile-Games-Auslese: Bezahlbare Drachen und dicke Bären
Mobile-Games-Auslese
Bezahlbare Drachen und dicke Bären

Rundenbasierte Strategie auf dem Smartphone mit Chaos Reborn Adventure Fantasy von Nintendo in Dragalia Lost - und dicke Alpha-Bären: Die Mobile Games des Monats bieten spannende Unterhaltung für jeden Geschmack.
Von Rainer Sigl

  1. Mobile-Games-Auslese Städtebau und Lebenssimulation für unterwegs
  2. Mobile-Games-Auslese Barbaren und andere knuddelige Fantasyhelden
  3. Seismic Games Niantic kauft Entwickler von Marvel Strike Force

    •  /