Abo
  • Services:

Funktional und voll unter Kontrolle

Kotlin ermöglicht funktionale Programmierung und orientiert sich in Teilen auch an diesem Konzept. Eine neue Funktion wird mit fun definiert, gefolgt vom Namen der Funktion, den Argumenten in Klammern sowie dem Typ des Rückgabewertes nach einem Doppelpunkt.

Stellenmarkt
  1. BWI GmbH, Bonn
  2. BWI GmbH, verschiedene Standorte

  1. // Berechnet den größten gemeinsamen Teiler
  2. fun ggt(x: Int = 0, y: Int = 0): Int {
  3. var a: Int = x
  4. var b: Int = y
  5.  
  6. while (b != 0) {
  7. if (a > b) {
  8. a = a - b
  9. } else {
  10. b = b - a;
  11. }
  12. }
  13.  
  14. println("Der ggT von $x und $y ist $a.")
  15. return a;
  16. }

Die Funktion ggt() erwartet zwei Argumente, die dann im Rumpf in den Variablen x und y bereitstehen. Der Typ einer Variablen steht ähnlich wie in Pascal hinter dem Doppelpunkt. Beim ggt() nehmen x und y 32 Bit große Ganzzahlen auf (Int). Optional können Entwickler hier Standardwerte vorgeben, im Beispiel erhalten x und y eben den Wert 0. Beim Aufruf einer Funktion darf man zudem festlegen, welcher Parameter welchen Wert erhält: ggt(b = 3). Auch die primitiven Datentypen wie Int sind in Kotlin vollwertige Objekte.

Die Funktion ggt() liefert eine Ganzzahl zurück. Gibt man keinen Rückgabetyp an, liefert die Funktion automatisch den Wert Unit vom Typ Unit zurück. Dies korrespondiert mit dem Typ void in Java. Besteht der Funktionsrumpf aus einem einzigen Ausdruck, kann man eine Kurzschreibweise nutzen: fun doppel(a: Int) = a + a.

Variablen definiert man mit var, Konstanten mit val. In Kotlin gilt die Konvention, möglichst immer alle genutzten Variablen auch tatsächlich als var zu definieren. Das betrifft auch die übergebenen Parameter, die der Rumpf von ggt() daher für die Berechnung in die Variablen a und b kopiert. Sofern man die Typen nicht angibt, versucht der Compiler, diese während der Übersetzung automatisch abzuleiten. Variableninhalte lassen sich zudem in Zeichenketten einsetzen, indem man den Variablennamen im Text ein $ voranstellt.

Unter Kontrolle

Ergänzend zu der etwa aus C oder eben Java altbekannten Anweisung if kennt Kotlin when, das dem switch-Konstrukt aus anderen Sprachen ähnelt. Wie im folgenden Beispiel vergleicht es den Inhalt oder den Typ einer Variablen nacheinander mit Vorgaben:

  1. fun wasist(obj): String = when (obj) {
  2. 1 -> "Eins"
  3. "Hallo" -> "Ein String mit dem Inhalt Hallo"
  4. is Int -> "Eine Zahl"
  5. else -> "unbekannt"
  6. }

Der Operator .. erzeugt eine Zahlenfolge, die man etwa in einer for-Schleife durchlaufen kann. Das folgende Beispiel addiert alle Zahlen von 1 bis 100:

  1. var x: Int = 0
  2. for (i in 1..100) {
  3. x = x + i
  4. }

 Programmiersprache für Android: Kotlin ist auch nur eine InselKlassen mit zwei Konstruktoren und Properties 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8.  


Anzeige
Top-Angebote
  1. (u. a. Samsung Galaxy Note 8 für 379€ statt 403,95€ im Vergleich)
  2. 549,99€ (Bestpreis!)

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
       


Geforce GTX 1660 Ti im Test

Die Geforce GTX 1660 Ti ist mit 300 Euro die bisher günstigste Turing-Karte von Nvidia, sie hat aber keine RT-Cores für Raytracing oder Tensor-Cores für DLSS-Kantenglättung.

Geforce GTX 1660 Ti im Test Video aufrufen
Sailfish X im Test: Die Android-Alternative mit ein bisschen Android
Sailfish X im Test
Die Android-Alternative mit ein bisschen Android

Seit kurzem ist Sailfish OS mit Android-Unterstützung für weitere Xperia-Smartphones von Sony verfügbar. Fünf Jahre nach unserem letzten Test wird es Zeit, dass wir uns das alternative Mobile-Betriebssystem wieder einmal anschauen und testen, wie es auf einem ursprünglichen Android-Gerät läuft.
Ein Test von Tobias Költzsch


    Gesetzesinitiative des Bundesrates: Neuer Straftatbestand Handelsplattform-Betreiber im Darknet
    Gesetzesinitiative des Bundesrates
    Neuer Straftatbestand Handelsplattform-Betreiber im Darknet

    Eine Gesetzesinitiative des Bundesrates soll den Betrieb von Handelsplattformen im Darknet unter Strafe stellen, wenn sie Illegales fördern. Das war auch bisher schon strafbar, das Gesetz könnte jedoch vor allem der Überwachung dienen, kritisieren Juristen.
    Von Moritz Tremmel

    1. Security Onionshare 2 ermöglicht einfachen Dateiaustausch per Tor
    2. Tor-Netzwerk Britischer Kleinstprovider testet Tor-SIM-Karte
    3. Tor-Netzwerk Sicherheitslücke für Tor Browser 7 veröffentlicht

    FreeNAS und Windows 10: Der erste NAS-Selbstbau macht glücklich
    FreeNAS und Windows 10
    Der erste NAS-Selbstbau macht glücklich

    Es ist gar nicht so schwer, wie es aussieht: Mit dem Betriebssystem FreeNAS, den richtigen Hardwarekomponenten und Tutorials baue ich mir zum ersten Mal ein NAS-System auf und lerne auf diesem Weg viel darüber - auch warum es Spaß macht, selbst zu bauen, statt fertig zu kaufen.
    Ein Erfahrungsbericht von Oliver Nickel

    1. TS-332X Qnaps Budget-NAS mit drei M.2-Slots und 10-GBit-Ethernet

      •  /