Abo
  • IT-Karriere:

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. UDG United Digital Group, Karlsruhe, Mainz
  2. SEW-EURODRIVE GmbH & Co KG, Bruchsal

  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. 69,90€ + Versand (Vergleichspreis 85,04€ + Versand)
  2. (u. a. Philips 55PUS8303 Ambilight-TV für 699€ statt 860€ im Vergleich und weitere TV-Angebote)
  3. (aktuell u. a. Intel Core i5-9600K boxed für 229€ + Versand statt 247,90€ + Versand im...

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
       


Speedport Pro - Test

Der Speedport Pro ist gerade im WLAN verglichen mit dem älteren Speedport Hybrid eine Verbesserung. Allerdings zeigt sich in unserem Test auch, dass die maximale Datenrate nicht steigt. Eher das Gegenteil ist der Fall.

Speedport Pro - Test Video aufrufen
Chromium: Der neue Edge-Browser könnte auch Chrome besser machen
Chromium
Der neue Edge-Browser könnte auch Chrome besser machen

Build 2019 Wie sieht die Zukunft des Edge-Browsers aus und was will Microsoft zum Chromium-Projekt beitragen? Im Gespräch mit Golem.de gibt das Unternehmen die vage Aussicht auf einen Release für Linux und Verbesserungen in Google Chrome. Bis dahin steht viel Arbeit an.
Von Oliver Nickel

  1. Insiderprogramm Microsoft bietet Vorversionen von Edge für den Mac an
  2. Browser Edge auf Chromium-Basis wird Netflix in 4K unterstützen
  3. Browser Microsoft lässt nur Facebook auf Flash-Whitelist in Edge

Bethesda: Ich habe TES Blades für 5,50 Euro durchgespielt
Bethesda
Ich habe TES Blades für 5,50 Euro durchgespielt

Rund sechs Wochen lang hatte ich täglich viele spaßige und auch einige frustrierende Erlebnisse in Tamriel: Mittlerweile habe ich den Hexenkönig in TES Blades besiegt - ohne dafür teuer bezahlen zu müssen.
Ein Bericht von Marc Sauter

  1. Bethesda TES Blades erhält mehr Story-Inhalte und besseres Balancing
  2. Bethesda TES Blades ist für alle verfügbar
  3. TES Blades im Test Tolles Tamriel trollt

Motorola One Vision im Hands on: Smartphone mit 48-Megapixel-Kamera für 300 Euro
Motorola One Vision im Hands on
Smartphone mit 48-Megapixel-Kamera für 300 Euro

Motorola bringt ein weiteres Android-One-Smartphone auf den Markt. Die Neuvorstellung verwendet viel Samsung-Technik und hat ein sehr schmales Display. Die technischen Daten sind für diese Preisklasse vielversprechend.
Ein Hands on von Ingo Pakalski

  1. Moto G7 Power Lenovos neues Motorola-Smartphone hat einen großen Akku
  2. Smartphones Lenovo leakt neue Moto-G7-Serie

    •  /