रिजल्ट टाइप
From Vigyanwiki
कार्यात्मक प्रोग्रामिंग में, रिजल्ट टाइप एक मोनाडिक प्रकार होता है जिसमें इसका मान त्रुटि कोड होता है। जो असामान्यता हैंडलिंग का सहारा लिए बिना त्रुटियों का विधारण करने की विधि प्रदान करते हैं; जब कोई फ़ंक्शन विफल हो सकता है, रिजल्ट टाइप प्रकार का पुनरावृत्ति करता है, प्रोग्रामर को अपेक्षित रिजल्ट टाइप तक पहुंच प्राप्त करने से पूर्व, सफलता या विफलता मार्ग पर विचार करने के लिए विवश किया जाता है; यह त्रुटिपूर्ण प्रोग्रामर धारणा की संभावना को समाप्त करता है।
उदाहरण
- एल्म (प्रोग्रामिंग भाषा) में, इसे मानक पुस्तकालय द्वारा परिभाषित किया गया है
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()
const CAT_FOUND: bool = true;
fn main() { let result = pet_cat(); if result.is_ok() { println!("Great, we could pet the cat!"); } else {
println!("Oh no, we couldn't pet the cat!"); } } fn pet_cat() -> Result<(), String> { if CAT_FOUND {
Ok(())
} else {
Err(String::from("the cat is nowhere to be 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.