"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > Java.util.stream API के साथ कोडिंग करते समय \"शून्य सत्य\" को ध्यान में रखें

Java.util.stream API के साथ कोडिंग करते समय \"शून्य सत्य\" को ध्यान में रखें

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

Keep \

  • परिचय
  • शून्य सत्य क्या है?
    • समस्या का विवरण
    • शून्य सत्य दर्ज करें
      • शून्य सत्य की गणितीय परिभाषा
    • प्रोग्रामिंग में यह बात क्यों मायने रखती है?
    • संदर्भ

परिचय

क्या आपने कभी प्रोग्रामिंग में ऐसे परिदृश्य का सामना किया है जहां आपको यह जांचने की आवश्यकता है कि किसी सूची या स्ट्रीम में सभी तत्व एक निश्चित शर्त को पूरा करते हैं या नहीं? कोडिंग में यह एक सामान्य पैटर्न है, लेकिन सूची खाली होने पर क्या होता है? यहीं पर शून्य सत्य की अवधारणा सामने आती है।

शून्य सत्य क्या है?

इससे पहले कि हम गणितीय परिभाषा में उतरें, आइए यह समझने के लिए कोड में एक व्यावहारिक उदाहरण से शुरुआत करें कि निरर्थक सत्य क्या है।

समस्या का विवरण

कल्पना करें कि आपको यह जांचने का काम सौंपा गया है कि किसी सूची के सभी तत्व एक निश्चित शर्त को पूरा करते हैं या नहीं। यदि वे ऐसा करते हैं, तो आप एक विशिष्ट कार्रवाई करते हैं। उदाहरण के लिए, निम्नलिखित जावा कोड स्निपेट पर विचार करें:

  public static void main(String[] args) {
    // Example - 1, expected to do something
    if (allNumbersAreOdd(Arrays.asList(1, 3, 5))) {
      System.out.println("do something 1");
    }
    // Example - 2, NOT expected to do anything because NOT all numbers are odd
    if (allNumbersAreOdd(Arrays.asList(1, 2, 3, 4, 5))) {
      System.out.println("do something 2");
    }
    // Example - 3, NOT expected to do anything because list is empty so there is no odd number.
    /* This is the surprising element which is known as "Vacuous truth" and it will print "do something".
     * It is applicable to both allMatch(Predicate super T> predicate) 
     * and noneMatch(Predicate super T> predicate) */
    if (allNumbersAreOdd(Collections.emptyList())) {
      System.out.println("do something 3");
    }
  }

  private static boolean allNumbersAreOdd(@Nonnull List numbers) {
    return numbers.stream().allMatch(integer -> integer % 2 != 0);
  }

तीसरा उदाहरण विशेष रूप से दिलचस्प है। सूची खाली होने पर यह "सभी संख्याएँ विषम" क्यों लौटाता है?

शून्य सत्य दर्ज करें

यह व्यवहार शून्य सत्य का उदाहरण है। गणितीय तर्क में, एक कथन जो एक खाली सेट के सभी तत्वों के बारे में कुछ दावा करता है उसे सत्य माना जाता है। ऐसा इसलिए है क्योंकि सेट में कथन का खंडन करने के लिए कोई तत्व नहीं हैं।

शून्य सत्य की गणितीय परिभाषा

विकिपीडिया के अनुसार:

"एक रिक्त सत्य एक कथन है जो दावा करता है कि खाली सेट के सभी सदस्यों के पास एक निश्चित संपत्ति है। ऐसे कथनों को सत्य माना जाता है क्योंकि खाली सेट में कोई प्रति उदाहरण नहीं हैं।"

दूसरे शब्दों में, जब हम कहते हैं, "सेट एस के सभी तत्वों में संपत्ति पी है," और यदि एस खाली है, तो यह कथन शून्य रूप से सत्य है क्योंकि एस में एक भी तत्व नहीं है जो संभावित रूप से संपत्ति पी का उल्लंघन कर सकता है

प्रोग्रामिंग में यह बात क्यों मायने रखती है?

प्रोग्रामिंग में शून्य सत्य को समझना महत्वपूर्ण है क्योंकि यह आपके कोड के तर्क और परिणामों को प्रभावित कर सकता है, खासकर जब संग्रह, स्ट्रीम, या किसी भी परिदृश्य से निपटते समय जहां आपका इनपुट संभावित रूप से खाली हो सकता है।

निष्कर्ष
अगली बार जब आप कोई ऐसा फ़ंक्शन लिख रहे हों जो जाँचता है कि किसी सूची या स्ट्रीम के सभी तत्व किसी शर्त को पूरा करते हैं या नहीं, तो रिक्त सत्य की अवधारणा को याद रखें। यह बताता है कि इनपुट खाली होने पर आपका कोड अप्रत्याशित तरीके से व्यवहार क्यों कर सकता है। इसके बारे में जागरूक होने से आपको अधिक मजबूत और पूर्वानुमानित कार्यक्रम लिखने में मदद मिल सकती है।
यदि आपके पास एक खाली सूची/स्ट्रीम की आवश्यकता है जिसका मूल्यांकन सत्य के रूप में नहीं किया जाना चाहिए, तो आपको सूची/स्ट्रीम पर अतिरिक्त जांच पर विचार करना होगा।

  private static boolean allNumbersAreOdd(@Nonnull List numbers) {
    return !numbers.isEmpty() && numbers.stream().allMatch(integer -> integer % 2 != 0);
  }

संदर्भ

  • विकिपीडिया: खोखला सच
  • जावा दस्तावेज़ में एपीआई नोट:
    • बूलियन ऑलमैच(प्रेडिकेट सुपर टी> प्रेडिकेट)
    • बूलियन नॉनमैच(प्रेडिकेट सुपर टी> प्रेडिकेट)
विज्ञप्ति वक्तव्य इस लेख को इस पर पुन: प्रस्तुत किया गया है: https://dev.to/prabhatkjena/keep-vacuous-truth-on-top-of-to-mind-while-dhile-coding-with-javautilstream-api-4lnb?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] पर संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3