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. Cloud Engineer / Cloud Architect mit Fokus auf Google Cloud Platform (m/f/x)
    Wabion GmbH, Stuttgart, Köln, deutschlandweit (Home-Office)
  2. Wissenschaftlicher Mitarbeiter / Wissenschaftliche Mitarbeiterin (d/m/w) am European Campus
    THD - Technische Hochschule Deggendorf, Pfarrkirchen
Detailsuche

  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.

Golem Akademie
  1. Cinema 4D Grundlagen: virtueller Drei-Tage-Workshop
    14.–16. März 2022, Virtuell
  2. Kotlin für Java-Entwickler: virtueller Zwei-Tage-Workshop
    03.–04. Februar 2022, Virtuell
Weitere IT-Trainings

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

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 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.  


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...



Aktuell auf der Startseite von Golem.de
Lego Star Wars UCS AT-AT aufgebaut
"Das ist kein Mond, das ist ein Lego-Modell"

Ganz wie der Imperator es wünscht: Der Lego UCS AT-AT ist riesig und imposant - und eines der besten Star-Wars-Modelle aus Klemmbausteinen.
Ein Praxistest von Oliver Nickel

Lego Star Wars UCS AT-AT aufgebaut: Das ist kein Mond, das ist ein Lego-Modell
Artikel
  1. Kryptowährung im Fall: Bitcoin legt rasante Talfahrt hin
    Kryptowährung im Fall
    Bitcoin legt rasante Talfahrt hin

    Am Samstag setzte sich der Absturz des Bitcoin fort. Ein Bitcoin ist nur noch 34.200 US-Dollar wert. Auch andere Kryptowährungen machen Verluste.

  2. eStream: Airstream-Wohnwagen mit eigenem Elektroantrieb
    eStream
    Airstream-Wohnwagen mit eigenem Elektroantrieb

    Der Wohnwagen Airstream eStream besitzt einen eigenen Elektroantrieb nebst Akku. Das entlastet das Zugfahrzeug und eröffnet weitere Möglichkeiten.

  3. Andromeda: Dieses Microsoft-Smartphone-Betriebssystem erschien nie
    Andromeda
    Dieses Microsoft-Smartphone-Betriebssystem erschien nie

    Erstmals ist ein Blick auf Andromeda möglich - das Smartphone-Betriebssystem, das Microsoft bereits vor einigen Jahren eingestellt hat.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • MediaMarkt & Saturn: Heute alle Produkte versandkostenfrei • Corsair Vengeance RGB RT 16-GB-Kit DDR4-4000 114,90€ • Alternate (u.a. DeepCool AS500 Plus 61,89€) • Acer XV282K UHD/144 Hz 724,61€ • MindStar (u.a. be quiet! Pure Power 11 CM 600W 59€) • Sony-TVs heute im Angebot [Werbung]
    •  /