"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > इफ़ेक्ट-टीएस में विकल्प अनुक्रमण को समझना

इफ़ेक्ट-टीएस में विकल्प अनुक्रमण को समझना

2024-11-07 को प्रकाशित
ब्राउज़ करें:163

Understanding Option Sequencing in Effect-TS

उदाहरण 1: O.andThen के साथ पहले मान को अनदेखा करना

अवधारणा

O.andThen फ़ंक्शन आपको दो विकल्पों के अनुक्रम को निष्पादित करने की अनुमति देता है, जहां परिणाम केवल दूसरे विकल्प द्वारा निर्धारित किया जाता है। यह तब उपयोगी होता है जब पहला विकल्प किसी उद्देश्य को पूरा करता है, लेकिन बाद के संचालन में इसके मूल्य की आवश्यकता नहीं होती है।

कोड

function sequencing_ex01() {
  const some1 = O.some(1); // Create an Option containing the value 1
  const some2 = O.some(2); // Create an Option containing the value 2
  const none = O.none(); // Create an Option representing no value

  console.log(pipe(some1, O.andThen(some2))); // Output: Some(2) (ignores 1 and returns 2)
  console.log(pipe(none, O.andThen(some2))); // Output: None (since the first Option is None)
}

स्पष्टीकरण

  • pipe(some1, O.andThen(some2)): यहां, some1 का मान 1 है, लेकिन ऑपरेशन इसे अनदेखा कर देता है और some2 लौटाता है, जिसका मान 2 है।
  • pipe(none, O.andThen(some2)): चूंकि पहला विकल्प कोई नहीं है, इसलिए ऑपरेशन शॉर्ट-सर्किट हो जाता है और कोई नहीं लौटाता है।

यह अनुक्रमण ऑपरेशन विशेष रूप से तब उपयोगी होता है जब आप संचालन को श्रृंखलाबद्ध करना चाहते हैं लेकिन केवल दूसरे ऑपरेशन के परिणाम में रुचि रखते हैं।

उदाहरण 2: O.flatten के साथ नेस्टेड विकल्पों को फ़्लैट करना

अवधारणा

O.flatten फ़ंक्शन को नेस्टिंग के एक स्तर को हटाकर नेस्टेड विकल्पों को संभालने के लिए डिज़ाइन किया गया है। यह तब उपयोगी होता है जब आपके ऑपरेशन के परिणामस्वरूप विकल्प का विकल्प होता है, और आपको इसे एक विकल्प में सरल बनाने की आवश्यकता होती है।

कोड

function sequencing_ex02() {
  const nestedSome = O.some(O.some(1)); // Create a nested Option containing the value 1
  const nestedNone = O.some(O.none()); // Create a nested Option representing no value
  const none = O.none(); // Create an Option representing no value

  console.log(pipe(nestedSome, O.flatten)); // Output: Some(1) (flattens the nested Option)
  console.log(pipe(nestedNone, O.flatten)); // Output: None (flattens to None)
  console.log(pipe(none, O.flatten)); // Output: None (since the outer Option is None)
}

स्पष्टीकरण

  • पाइप(नेस्टेडसम, ओ.फ्लैटन): यह विकल्प के विकल्प को एक एकल विकल्प में समतल कर देता है, जिसके परिणामस्वरूप कुछ(1) प्राप्त होता है।
  • pipe(nestedNone, O.flatten): आंतरिक विकल्प कोई नहीं है, इसलिए फ़्लैटनिंग का परिणाम कोई नहीं है।
  • पाइप(कोई नहीं, ओ.फ्लैटन): यदि बाहरी विकल्प कोई नहीं है, तो फ़्लैटनिंग का कोई प्रभाव नहीं पड़ता है, और कोई भी वापस नहीं आता है।

फ़्लैटनिंग उन फ़ंक्शंस से निपटने के लिए आवश्यक है जो नेस्टेड विकल्प लौटा सकते हैं, जिससे आप परिणाम को एकल विकल्प मान में सुव्यवस्थित कर सकते हैं।

उदाहरण 3: O.composeK के साथ विकल्प-रिटर्निंग फ़ंक्शंस की रचना करना

अवधारणा

O.composeK फ़ंक्शन आपको दो फ़ंक्शन बनाने की अनुमति देता है जो एक विकल्प लौटाते हैं, एक पाइपलाइन बनाते हैं जहां पहले फ़ंक्शन का आउटपुट दूसरे में फीड किया जाता है। यह विशेष रूप से उन चेनिंग परिचालनों के लिए उपयोगी है जो विफल हो सकते हैं और परिणाम कुछ भी नहीं हो सकता है।

कोड

function sequencing_ex03() {
  const parseNumber = (s: string): O.Option => {
    const n = parseInt(s, 10);
    return isNaN(n) ? O.none() : O.some(n);
  };

  const doubleIfPositive = (n: number): O.Option =>
    n > 0 ? O.some(n * 2) : O.none();

  const parseAndDouble = pipe(parseNumber, O.composeK(doubleIfPositive));

  console.log(parseAndDouble('42')); // Output: Some(84) (parses and doubles the number)
  console.log(parseAndDouble('-1')); // Output: None (since -1 is not positive)
  console.log(parseAndDouble('abc')); // Output: None (since 'abc' is not a number)
}

स्पष्टीकरण

  • parseAndDouble('42'): स्ट्रिंग '42' को सफलतापूर्वक एक संख्या में पार्स किया गया है, और चूंकि यह सकारात्मक है, इसलिए इसे दोगुना कर दिया गया है, जिसके परिणामस्वरूप कुछ (84) है।
  • parseAndDouble('-1'): स्ट्रिंग '-1' को पार्स किया गया है, लेकिन चूंकि यह नकारात्मक है, फ़ंक्शन कोई नहीं लौटाता है।
  • parseAndDouble('abc'): स्ट्रिंग 'abc' को एक संख्या के रूप में पार्स नहीं किया जा सकता है, इसलिए फ़ंक्शन कोई नहीं लौटाता है।

विकल्प-रिटर्निंग फ़ंक्शंस का संयोजन आपको उन मामलों को सुरक्षित रूप से संभालने के दौरान संचालन की जटिल श्रृंखला बनाने की अनुमति देता है जहां श्रृंखला में कोई भी चरण विफल हो सकता है।

निष्कर्ष

ये उदाहरण संचालन के अनुक्रमों को संभालने के लिए इफेक्ट-टीएस में विकल्प प्रकार की बहुमुखी प्रतिभा और शक्ति को प्रदर्शित करते हैं। चाहे आप O.andThen के साथ मानों को अनदेखा कर रहे हों, O.flatten के साथ नेस्टेड विकल्पों को समतल कर रहे हों, या O.composeK के साथ संचालन की रचना कर रहे हों, ये पैटर्न आपको कार्यात्मक प्रोग्रामिंग संदर्भ में वैकल्पिक मानों को अधिक प्रभावी ढंग से प्रबंधित करने में सक्षम बनाते हैं। इन तकनीकों का लाभ उठाकर, आप अधिक मजबूत और संक्षिप्त कोड लिख सकते हैं, यह सुनिश्चित करते हुए कि ऑपरेशन स्पष्ट और पठनीय तर्क बनाए रखते हुए मूल्यों की अनुपस्थिति को खूबसूरती से संभालते हैं।

विज्ञप्ति वक्तव्य इस लेख को इस पर पुन: पेश किया गया है: https://dev.to/almaclaine/understanding-option-ception-in-effect-ts-22g7?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3