Warum verbietet Kotlin die Verwendung von Result<T> als Rückgabetyp einer Funktion?
Hallo zusammen! Ich lerne Kotlin und bin auf ein seltsames Problem gestoßen. Ich wollte eine Funktion schreiben, die entweder ein erfolgreiches Ergebnis oder eine Ausnahme zurückgibt, indem ich die eingebaute Klasse `Result` verwende. Hier ist mein Code:
```kotlin
fun divide(a: Int, b: Int): Result {
return try {
Result.success(a / b)
} catch (e: ArithmeticException) {
Result.failure(e)
}
}
```
Aber der Compiler gibt einen Fehler aus: *"'kotlin.Result' cannot be used as a return type"*. Ich habe versucht, `Result?` zu verwenden und es sogar in `Any` zu wrappen, aber nichts hilft. Dabei kann ich `Result` innerhalb des Funktionskörpers verwenden, z.B. es von `runCatching` zurückgeben, aber nicht als Rückgabetyp.
Warum ist das so? In Java kann man doch `Optional` oder eigene Wrapper verwenden. Ich habe gelesen, dass dies mit dem Sprachdesign zusammenhängt, aber ich verstehe die Details nicht. Gibt es vielleicht einen Workaround? Bitte erklärt es für einen Anfänger. Vielen Dank im Voraus!
<<>>