रिजल्ट टाइप
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.