Funktionen mit einem Ausdruck
Teil des Abschnitts Grundlagen der Kotlin-Journey von Coddy. Lektion 60 von 93.
Wenn eine Funktion nur einen einzigen Ausdruck enthält, bietet Kotlin eine prägnantere Syntax. Anstatt geschweifte Klammern und das Schlüsselwort return zu verwenden, kannst du ein Gleichheitszeichen verwenden, gefolgt direkt vom Ausdruck.
Hier ist eine reguläre Funktion im Vergleich zu ihrem Äquivalent mit einem einzelnen Ausdruck:
// Reguläre Funktion
fun double(n: Int): Int {
return n * 2
}
// Single-Expression-Funktion
fun double(n: Int): Int = n * 2Beide Versionen funktionieren identisch, aber die zweite ist für einfache Operationen kürzer und leichter zu lesen.
Kotlin kann sogar den Rückgabetyp für Funktionen mit einem einzigen Ausdruck ableiten, sodass du ihn vollständig weglassen kannst:
fun double(n: Int) = n * 2
fun greet(name: String) = "Hello, $name!"Diese Syntax funktioniert auch wunderbar mit bedingten Ausdrücken:
fun max(a: Int, b: Int) = if (a > b) a else b
fun isEven(n: Int) = n % 2 == 0Funktionen mit einem einzigen Ausdruck eignen sich ideal für einfache Berechnungen, Validierungen und Transformationen. Sie halten deinen Code übersichtlich und konzentrieren sich darauf, was die Funktion tut, statt auf die Mechanismen der Rückgabe eines Werts.
Aufgabe
MittelSchreibe eine Funktion calculateDiscount, die price und percentage entgegennimmt und den reduzierten Preis zurückgibt.
Verwende die Syntax für Funktionen mit einem einzigen Ausdruck (mit = anstelle von geschweiften Klammern und return), um den Endpreis nach Anwendung des Rabatts zu berechnen.
Der reduzierte Preis wird wie folgt berechnet: price - (price * percentage / 100)
Parameter:
price(Double): Der ursprüngliche Preispercentage(Int): Der Rabattprozentsatz (0-100)
Rückgabewert: Der Preis nach Anwendung des Rabatts (Double)
Probier es selbst
fun calculateDiscount(price: Double, percentage: Int): Double {
// Schreibe hier den Code
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorErweiterte ZuweisungVergleichsoperatorenRückblick – Einfache Mathematik7Grundlegende Ein-/Ausgabe
println-FunktionString-VorlagenReadLine-EingabeTypkonvertierungWiederholung – Jahre bis zur RenteWiederholung – Wahr oder falsch10Funktionen
Eine Funktion deklarierenParameter und ArgumenteRückgabewerteBenannte ArgumenteStandardwerteFunktionen mit einem AusdruckRückblick – Sigma-FunktionRückblick – Validierungsfunktion2Variablen
Val vs VarTypinferenzZahlenStringBooleanNamenskonventionenRückblick – Variablen initialisieren5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Logische Operatoren Teil 3Ternär mit If-AusdruckWiederholung – Einfache Logik8Rechner zum Aufteilen der Rechnung
WillkommensnachrichtEingaben erfassen11FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Funktion3Nullbarkeit
Was ist Null-Sicherheit?Nullable-TypenOperator für sicheren AufrufElvis-OperatorGrundlagen der FunktionsaufgabeAssertion auf Nicht-NullRückblick – Sicherer Zugriff6Entscheidungen treffen
If-AnweisungIf - ElseIf als AusdruckWhen-AusdruckWhen mit BereichenRückblick - Einfacher Taschenrechner9Schleifen
For-SchleifeWhile-SchleifeDo-While-SchleifeBreakContinueBereiche in SchleifenVerschachtelte SchleifeRückblick – FakultätRückblick – Dynamische EingabeÜbe selbstständig: Kotlin-Playground