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

इफ़ेक्ट-टीएस में विकल्प रूपांतरण की खोज

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

Exploring Option Conversions in Effect-TS

इफेक्ट-टीएस विकल्प और किसी भी प्रकार को संभालने के लिए शक्तिशाली उपकरण प्रदान करता है। इस लेख में, हम लाइब्रेरी के उपयोगिता कार्यों का उपयोग करके इन प्रकारों को परिवर्तित करने और हेरफेर करने के विभिन्न तरीकों का पता लगाएंगे।

उदाहरण 1: O.getRight के साथ किसी एक को एक विकल्प में बदलें

O.getRight फ़ंक्शन त्रुटि को हटाते हुए, किसी एक को एक विकल्प में बदल देता है। यदि इनमें से कोई भी सही है, तो यह O.some(मान) लौटाता है, अन्यथा यह O.none लौटाता है।

import { Option as O, Either as E, pipe } from 'effect';

function conversions_ex01() {
  const eitherRight = E.right('ok'); // Create an Either containing the value 'ok'
  const eitherLeft = E.left('error'); // Create an Either representing an error

  console.log(O.getRight(eitherRight)); // Output: Some('ok')
  console.log(O.getRight(eitherLeft)); // Output: None
}

उदाहरण 2: O.getLeft के साथ किसी एक को एक विकल्प में बदलें

O.getLeft फ़ंक्शन मान को हटाते हुए, किसी एक को एक विकल्प में बदल देता है। यदि इनमें से कोई भी बायां है, तो यह O.some (त्रुटि) लौटाता है, अन्यथा यह O.none लौटाता है।

import { Option as O, Either as E, pipe } from 'effect';

function conversions_ex02() {
  const eitherRight = E.right('ok'); // Create an Either containing the value 'ok'
  const eitherLeft = E.left('error'); // Create an Either representing an error

  console.log(O.getLeft(eitherRight)); // Output: None
  console.log(O.getLeft(eitherLeft)); // Output: Some('error')
}

उदाहरण 3: O.getOrElse से मान या डिफ़ॉल्ट प्राप्त करें

O.getOrElse फ़ंक्शन विकल्प के अंदर मान लौटाता है यदि यह कुछ है, अन्यथा, यह प्रदान किया गया डिफ़ॉल्ट मान लौटाता है।

import { Option as O, pipe } from 'effect';

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

  console.log(
    pipe(
      some,
      O.getOrElse(() => 'default')
    )
  ); // Output: 1 (since some contains 1)
  console.log(
    pipe(
      none,
      O.getOrElse(() => 'default')
    )
  ); // Output: 'default' (since none is None)
}

उदाहरण 4: O.orElse के साथ चेनिंग विकल्प

O.orElse फ़ंक्शन दिए गए विकल्प को लौटाता है कि यदि self कोई नहीं है, अन्यथा यह self लौटाता है। यह फ़ंक्शन उन विकल्पों की श्रृंखला बनाने की अनुमति देता है जहां फ़ॉलबैक एक अन्य विकल्प है।

import { Option as O, pipe } from 'effect';

function conversions_ex04() {
  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.orElse(() => some2)
    )
  ); // Output: Some(1) (since some1 contains 1)
  console.log(
    pipe(
      none,
      O.orElse(() => some2)
    )
  ); // Output: Some(2) (since none is None and fallback is some2)
}

उदाहरण 5: O.orElseSome के साथ डिफ़ॉल्ट मान पर फ़ॉलबैक

यदि सेल्फ कोई नहीं है तो O.orElseSome फ़ंक्शन कुछ में लिपटे हुए दिए गए डिफ़ॉल्ट मान को लौटाता है, अन्यथा यह सेल्फ को लौटाता है। यह फ़ंक्शन उन विकल्पों की श्रृंखला बनाने की अनुमति देता है जहां फ़ॉलबैक कुछ में लिपटा हुआ एक डिफ़ॉल्ट मान है।

import { Option as O, pipe } from 'effect';

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

  console.log(
    pipe(
      some,
      O.orElseSome(() => 2)
    )
  ); // Output: Some(1) (since some contains 1)
  console.log(
    pipe(
      none,
      O.orElseSome(() => 2)
    )
  ); // Output: Some(2) (since none is None and fallback is 2)
}

उदाहरण 6: O.orElseEither का उपयोग करके किसी भी संदर्भ के साथ चेनिंग विकल्प

O.orElseEither फ़ंक्शन एक विकल्प देता है जिसमें बायां फ़ॉलबैक विकल्प से होता है और दायां मूल विकल्प से होता है। यह फ़ंक्शन विकल्पों की श्रृंखला बनाने की अनुमति देता है जहां फ़ॉलबैक अधिक संदर्भ के लिए या तो प्रदान करता है।

import { Option as O, Either as E, pipe } from 'effect';

function conversions_ex06() {
  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.orElseEither(() => some2)
    )
  ); // Output: Some(Right(1)) (since some1 contains 1)
  console.log(
    pipe(
      none,
      O.orElseEither(() => some2)
    )
  ); // Output: Some(Left(2)) (since none is None and fallback is some2)
}

उदाहरण 7: O.firstSomeOf के साथ पुनरावर्तनीय में प्रथम कुछ खोजें

O.firstSomeOf फ़ंक्शन विकल्पों के पुनरावर्तनीय में पाए गए पहले कुछ को लौटाता है। यदि सभी कुछ नहीं हैं, तो यह कोई नहीं लौटाता है।

import { Option as O } from 'effect';

function conversions_ex07() {
  const options = [O.none(), O.some(1), O.some(2)]; // Create an iterable of Options
  const optionsAllNone = [O.none(), O.none()]; // Create an iterable of None Options

  console.log(O.firstSomeOf(options)); // Output: Some(1) (since the first non-None Option is Some(1))
  console.log(O.firstSomeOf(optionsAllNone)); // Output: None (since all Options are None)
}

उदाहरण 8: एक विकल्प रिटर्निंग फ़ंक्शन को O.toRefinement के साथ टाइप गार्ड में कनवर्ट करें

O.toRefinement फ़ंक्शन एक विकल्प को टाइप गार्ड में लौटाने वाले फ़ंक्शन को परिवर्तित करता है, जिससे अधिक विशिष्ट प्रकार की जांच की अनुमति मिलती है।

import { Option as O } from 'effect';

function conversions_ex08() {
  const isPositive = (n: number): O.Option => n > 0 ? O.some(n) : O.none();
  const isPositiveRefinement = O.toRefinement(isPositive);

  console.log(isPositiveRefinement(1)); // Output: true (since 1 is positive)
  console.log(isPositiveRefinement(-1)); // Output: false (since -1 is not positive)
}

उदाहरण 9: O.toArray के साथ एक विकल्प को एक ऐरे में बदलें

O.toArray फ़ंक्शन एक विकल्प को एक सरणी में परिवर्तित करता है। यदि विकल्प कुछ है, तो यह मान वाली एक सरणी लौटाता है; यदि यह कोई नहीं है, तो यह एक खाली सरणी लौटाता है।

import { Option as O } from 'effect';

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

  console.log(O.toArray(some)); // Output: [1] (since some contains 1)
  console.log(O.toArray(none)); // Output: [] (since none is None)
}

निष्कर्ष

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

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/almaclaine/exploring-option-conversions-in-effect-ts-3bpk?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3