Kapitel 9. Funktionen mit mehreren bis einzelnen Ausdrücken
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Nat und Duncan lieben Kotlins Funktionsdefinitionen mit nur einem Ausdruck. Wann sollten wir diese Form verwenden, warum sollten wir sie bevorzugen und welche Kotlin-Features können wir nutzen, um mehr Funktionen zu einzelnen Ausdrücken zu machen?
Wie bei Java, ist der Code in einer Kotlin-Funktion normalerweise { innerhalb geschweifter Klammern } definiert und verwendetreturn
, um das Ergebnis der Funktion zu definieren (es sei denn, es ist Unit
, Kotlins Alias für void
):
fun
add
(
a
:
Int
,
b
:
Int
):
Int
{
return
a
+
b
}
Wenn die oberste Ebene des Codes jedoch ein einziger Ausdruck ist, können wir optional den Ergebnistyp weglassen und den Code mit einem Ausdruck nach einem Gleichheitszeichen definieren:
fun
addToo
(
a
:
Int
,
b
:
Int
):
Int
=
a
+
b
Wir können das so lesen: Das Ergebnis der Funktion add
ist gleich a + b
. Das ist sinnvoll für einen einzelnen Ausdruck und lässt sich auch gut lesen, wenn der Ausdruck selbst aus Unterausdrücken besteht:
fun
max
(
a
:
Int
,
b
:
Int
):
Int
=
when
{
a
>
b
->
a
else
->
b
}
Diese Interpretation macht weniger Sinn für Funktionen, die Seiteneffekte haben, insbesondere solche, die E/A ausführen oder in veränderbare Zustände schreiben. Zum Beispiel:
fun
printTwice
(
s
:
String
):
Unit
=
println
(
"$s\n$s"
)
Wir können dies nicht als das Ergebnis von printTwice
gleich println(..) ...
Get Von Java zu Kotlin now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.