Avatar ·

Pourquoi Kotlin interdit-il d'utiliser `Result<T>` comme type de retour d'une fonction ?

Bonjour à tous ! J'apprends Kotlin et je suis confronté à un problème étrange. Je voulais écrire une fonction qui retourne soit un résultat réussi, soit une exception, en utilisant la classe intégrée `Result`. Voici mon code : ```kotlin fun divide(a: Int, b: Int): Result { return try { Result.success(a / b) } catch (e: ArithmeticException) { Result.failure(e) } } ``` Mais le compilateur génère une erreur : *"'kotlin.Result' cannot be used as a return type"*. J'ai essayé d'utiliser `Result?` et même de l'envelopper dans `Any`, mais rien n'y fait. Pourtant, je peux utiliser `Result` à l'intérieur du corps de la fonction, par exemple en le retournant depuis `runCatching`, mais pas comme type de retour. Pourquoi cela ? En Java, on peut utiliser `Optional` ou ses propres wrappers. J'ai lu que cela est lié à la conception...