रिजल्ट टाइप
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()
चलो परिणाम = 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.