रिजल्ट टाइप: Difference between revisions
From Vigyanwiki
No edit summary |
No edit summary |
||
(13 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
कार्यात्मक प्रोग्रामिंग में, '''रिजल्ट टाइप''' एक मोनाडिक प्रकार होता है जिसमें इसका मान त्रुटि कोड होता है। जो असामान्यता हैंडलिंग का सहारा लिए बिना त्रुटियों का विधारण करने की विधि प्रदान करते हैं; जब कोई फ़ंक्शन विफल हो सकता है, रिजल्ट टाइप प्रकार का पुनरावृत्ति करता है, प्रोग्रामर को अपेक्षित रिजल्ट टाइप तक पहुंच प्राप्त करने से पूर्व, सफलता या विफलता मार्ग पर विचार करने के लिए विवश किया जाता है; यह त्रुटिपूर्ण प्रोग्रामर धारणा की संभावना को समाप्त करता है। | |||
== उदाहरण == | == उदाहरण == | ||
* [[एल्म (प्रोग्रामिंग भाषा)]] में, इसे मानक पुस्तकालय द्वारा परिभाषित किया गया है {{code|2=elm|1=type Result e v = Ok v {{!}} Err e}} | * [[एल्म (प्रोग्रामिंग भाषा)]] में, इसे मानक पुस्तकालय द्वारा परिभाषित किया गया है {{code|2=elm|1=type Result e v = Ok v {{!}} Err e}}<ref>{{cite web |title=Result · An Introduction to Elm |url=https://guide.elm-lang.org/error_handling/result.html |website=guide.elm-lang.org}}</ref> | ||
* [[हास्केल (प्रोग्रामिंग भाषा)]] में, | * [[हास्केल (प्रोग्रामिंग भाषा)]] में, सम्मेलन द्वारा {{code|Either|haskell}} इस उद्देश्य के लिए प्रकार का उपयोग किया जाता है, जिसे मानक पुस्तकालय द्वारा परिभाषित किया गया है {{code|1=data Either a b = Left a {{!}} Right b|2=haskell}}<ref>{{cite web |title=Data.Either |url=https://hackage.haskell.org/package/base-4.14.0.0/docs/Data-Either.html |website=hackage.haskell.org}}</ref> | ||
* [[OCaml]] में, इसे मानक पुस्तकालय द्वारा परिभाषित किया गया है {{code|2=ocaml|1=type ('a, 'b) result = Ok of 'a {{!}} Error of 'b type}} | * [[OCaml]] (ओकैमल) में, इसे मानक पुस्तकालय द्वारा परिभाषित किया गया है {{code|2=ocaml|1=type ('a, 'b) result = Ok of 'a {{!}} Error of 'b type}}<ref>{{cite web |title=Error Handling – OCaml |url=https://ocaml.org/learn/tutorials/error_handling.html#Result-type |website=ocaml.org}}</ref> | ||
* [[जंग (प्रोग्रामिंग भाषा)]] में, इसे मानक पुस्तकालय द्वारा परिभाषित किया गया है {{code|2=rust|1=enum Result<T, E> { Ok(T), Err(E) } }}.<ref>{{cite web |title=std::result - Rust |url=https://doc.rust-lang.org/std/result/ |website=doc.rust-lang.org}}</ref> | * [[जंग (प्रोग्रामिंग भाषा)|रस्ट (प्रोग्रामिंग भाषा)]] में, इसे मानक पुस्तकालय द्वारा परिभाषित किया गया है {{code|2=rust|1=enum Result<T, E> { Ok(T), Err(E) } }}.<ref>{{cite web |title=std::result - Rust |url=https://doc.rust-lang.org/std/result/ |website=doc.rust-lang.org}}</ref> | ||
* [[स्काला (प्रोग्रामिंग भाषा)]] में, मानक पुस्तकालय | * [[स्काला (प्रोग्रामिंग भाषा)]] में, मानक पुस्तकालय द्वारा परिभाषित किया गया है {{code|Either|scala}} प्रकार,<ref>{{cite web |title=Scala Standard Library 2.13.3 - scala.util.Either |url=https://www.scala-lang.org/api/current/scala/util/Either.html |website=www.scala-lang.org |accessdate=9 October 2020}}</ref> चूँकि स्काला में अधिक पारंपरिक असामान्यता प्रबंधन भी है। | ||
* [[स्विफ्ट (प्रोग्रामिंग भाषा)]] में, इसे मानक पुस्तकालय द्वारा परिभाषित किया गया है {{code|2=swift|1=@frozen enum Result<Success, Failure> where Failure : Error}} | * [[स्विफ्ट (प्रोग्रामिंग भाषा)]] में, इसे मानक पुस्तकालय द्वारा परिभाषित किया गया है {{code|2=swift|1=@frozen enum Result<Success, Failure> where Failure : Error}}<ref>{{cite web |title=Apple Developer Documentation |url=https://developer.apple.com/documentation/swift/result |website=developer.apple.com}}</ref> | ||
=== | === रस्ट === | ||
रिजल्ट टाइप वस्तु में विधियाँ हैं।- <code>is_ok()</code> और <code>is_err()</code> | |||
const CAT_FOUND: bool = true; | |||
fn main() { | |||
let result = pet_cat(); | |||
if result.is_ok() { | |||
println! ( | println!("Great, we could pet the cat!"); | ||
} else { | |||
fn pet_cat () -> | 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")) | |||
} | |||
} | |||
<br /> | |||
== यह भी देखें == | == यह भी देखें == | ||
Line 43: | Line 46: | ||
==संदर्भ== | ==संदर्भ== | ||
{{Reflist}} | {{Reflist}} | ||
[[Category:Created On 19/02/2023]] | [[Category:Created On 19/02/2023]] | ||
[[Category:Machine Translated Page]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:कार्यात्मक प्रोग्रामिंग]] |
Latest revision as of 15:45, 27 October 2023
कार्यात्मक प्रोग्रामिंग में, रिजल्ट टाइप एक मोनाडिक प्रकार होता है जिसमें इसका मान त्रुटि कोड होता है। जो असामान्यता हैंडलिंग का सहारा लिए बिना त्रुटियों का विधारण करने की विधि प्रदान करते हैं; जब कोई फ़ंक्शन विफल हो सकता है, रिजल्ट टाइप प्रकार का पुनरावृत्ति करता है, प्रोग्रामर को अपेक्षित रिजल्ट टाइप तक पहुंच प्राप्त करने से पूर्व, सफलता या विफलता मार्ग पर विचार करने के लिए विवश किया जाता है; यह त्रुटिपूर्ण प्रोग्रामर धारणा की संभावना को समाप्त करता है।
उदाहरण
- एल्म (प्रोग्रामिंग भाषा) में, इसे मानक पुस्तकालय द्वारा परिभाषित किया गया है
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.