रिजल्ट टाइप
From Vigyanwiki
This article needs additional citations for verification. (January 2021) (Learn how and when to remove this template message) |
कार्यात्मक प्रोग्रामिंग में, एक परिणाम प्रकार एक मोनाडिक प्रकार होता है जिसमें एक लौटा हुआ मान या एक त्रुटि कोड होता है। वे अपवाद हैंडलिंग का सहारा लिए बिना त्रुटियों को संभालने का एक सुंदर तरीका प्रदान करते हैं; जब कोई फ़ंक्शन जो विफल हो सकता है, परिणाम प्रकार लौटाता है, तो प्रोग्रामर को अपेक्षित परिणाम तक पहुंच प्राप्त करने से पहले, सफलता या विफलता पथों पर विचार करने के लिए मजबूर किया जाता है; यह एक त्रुटिपूर्ण प्रोग्रामर धारणा की संभावना को समाप्त करता है।
उदाहरण
- एल्म (प्रोग्रामिंग भाषा) में, इसे मानक पुस्तकालय द्वारा परिभाषित किया गया है
type Result e v = Ok v | Err e
.[1] - हास्केल (प्रोग्रामिंग भाषा) में, परिपाटी द्वारा
Either
इस उद्देश्य के लिए प्रकार का उपयोग किया जाता है, जिसे मानक पुस्तकालय द्वारा परिभाषित किया गया हैdata Either a b = Left a | Right b
.[2] - OCaml में, इसे मानक पुस्तकालय द्वारा परिभाषित किया गया है
type ('a, 'b) result = Ok of 'a | Error of 'b type
.[3] - जंग (प्रोग्रामिंग भाषा) में, इसे मानक पुस्तकालय द्वारा परिभाषित किया गया है
enum Result<T, E> { Ok(T), Err(E) }
.[4] - स्काला (प्रोग्रामिंग भाषा) में, मानक पुस्तकालय भी एक को परिभाषित करता है
Either
प्रकार,[5] हालांकि स्काला में अधिक पारंपरिक अपवाद प्रबंधन भी है। - स्विफ्ट (प्रोग्रामिंग भाषा) में, इसे मानक पुस्तकालय द्वारा परिभाषित किया गया है
@frozen enum Result<Success, Failure> where Failure : Error
.[6]
जंग
परिणाम वस्तु में विधियाँ हैं is_ok()
और is_err()
.
<वाक्यविन्यास प्रकाश लैंग = जंग>
स्थिरांक CAT_FOUND: बूल = सच;
एफएन मुख्य () {
चलो परिणाम = pet_cat (); अगर परिणाम.is_ok () { println! (बढ़िया, हम बिल्ली को पालतू बना सकते हैं!); } अन्य { println! (अरे नहीं, हम बिल्ली को पालतू नहीं बना सके!); }
}
fn pet_cat () -> परिणाम <(), स्ट्रिंग> {
अगर CAT_FOUND { ठीक है(()) } अन्य { एरर (स्ट्रिंग :: फ्रॉम (बिल्ली कहीं नहीं मिली)) }
} </वाक्यविन्यास हाइलाइट>
यह भी देखें
- विकल्प प्रकार
- एक्सेप्शन हेंडलिंग
- टैग की गई यूनियन
- वापसी प्रकार
संदर्भ
- ↑ "Result · An Introduction to Elm". guide.elm-lang.org.
- ↑ "Data.Either". hackage.haskell.org.
- ↑ "Error Handling – OCaml". ocaml.org.
- ↑ "std::result - Rust". doc.rust-lang.org.
- ↑ "Scala Standard Library 2.13.3 - scala.util.Either". www.scala-lang.org. Retrieved 9 October 2020.
- ↑ "Apple Developer Documentation". developer.apple.com.