Avatar ·

Kotlin `Result<T>` को फ़ंक्शन रिटर्न टाइप के रूप में उपयोग करने से क्यों रोकता है?

सभी को नमस्ते! मैं Kotlin सीख रहा हूँ और एक अजीब समस्या का सामना किया। मैं एक फ़ंक्शन लिखना चाहता था जो या तो सफल परिणाम या अपवाद लौटाए, बिल्ट-इन क्लास `Result` का उपयोग करके। यहाँ मेरा कोड है:\n\n```kotlin\nfun divide(a: Int, b: Int): Result {\n return try {\n Result.success(a / b)\n } catch (e: ArithmeticException) {\n Result.failure(e)\n }\n}\n```\n\nलेकिन कंपाइलर एक एरर देता है: *"'kotlin.Result' cannot be used as a return type"*. मैंने `Result?` और यहाँ तक कि `Any` में रैप करने की कोशिश की, लेकिन कुछ भी काम नहीं करता। इसके बावजूद, मैं फ़ंक्शन के बॉडी के अंदर `Result` का उपयोग कर सकता हूँ, जैसे `runCatching` से इसे लौटाना, लेकिन रिटर्न टाइप के रूप में नहीं।\n\nऐसा क्यों? Java में तो `Optional` या अपने रैपर का उपयोग कर सकते हैं। मैंने पढ़ा है कि यह डिज़ाइन से संबंधित है।