मैं जावा 8 के लिए नया हूं, मैं उपभोक्ता जावा दस्तावेज़ में आया और यह कहता है, "उपभोक्ता को साइड इफेक्ट्स के माध्यम से काम करने की उम्मीद है।" क्या कोई बता सकता है कि ऐसा क्यों कहा जाता है?जावा 8 उपभोक्ता और दुष्प्रभाव
उत्तर
Consumer
javadoc के अनुसार, उपभोक्ता को void accept(T)
हस्ताक्षर वाले विधि के साथ घोषित किया जाना चाहिए। नतीजतन, विधि एक मूल्य वापस नहीं कर सकता है। यदि इसका दुष्प्रभाव नहीं होता है तो इसमें किसी भी प्रभाव को करने की कोई क्षमता नहीं होगी।
धन्यवाद। मुझे आपकी बात समझ में आ गई। – user6348242
अधिकांश कार्यात्मक इंटरफेस केवल इतना होने के लिए हैं - कार्यात्मक इंटरफेस, जिसका सख्ती से मतलब है कि वे इनपुट स्वीकार करते हैं, कुछ गणना करते हैं, और आउटपुट लौटाते हैं। वे किसी भी राज्य को संशोधित नहीं करना चाहते हैं। Consumer
अपवाद है क्योंकि यह किसी भी मान वापस नहीं करता है; इसका उद्देश्य पूरी तरह से कुछ राज्यों को संशोधित करना है।
उपभोक्ता निम्नलिखित हस्ताक्षर
void accept(T t);
विधि एक इनपुट के रूप टी लेता है और कुछ भी (शून्य) वापस नहीं करता है, और इसलिए आप इसे से कुछ भी वापस नहीं कर सकते हैं और विधि की जगह के साथ विधि accept
है उस मूल्य के साथ कॉल करें जो यह लौटाता है।
एक पक्ष प्रभाव होगा एक प्रिंट बयान का एक उदाहरण
list.stream.foreach(System.out::println);
foreach एक तर्क के रूप में एक उपभोक्ता लेता है। यदि आप इसके बारे में सोचते हैं, तो ऐसी एकमात्र उपयोगी चीज जो आप इस तरह के तरीके से कर सकते हैं वह दुनिया को बदलना है (यानी, एक राज्य को बदलना)।
कि के विपरीत एक pure function, एक समारोह है कि किसी भी राज्य उत्परिवर्तित नहीं है, यह उदाहरण
Function<Integer,Integer> fn = x -> x*x;
यहाँ fn
के लिए एक इनपुट लेता होगा, और कुछ देता है, कोई साइड इफेक्ट नहीं है (यह कुछ भी म्यूट नहीं करता है), यह एक पूर्णांक प्राप्त करता है और शांतिपूर्वक अपने वर्ग को वापस देता है।
- 1. सी # अनुकूलन और दुष्प्रभाव
- 2. काफ्का जावा उपभोक्ता समूह
- 3. उपभोक्ता RESTful एपीआई जावा
- 4. विंडोज 8 उपभोक्ता पूर्वावलोकन गलत मेजर संस्करण?
- 5. अपाचे काफ्का उपभोक्ता समूह और सरल उपभोक्ता
- 6. जावा 7 और 8
- 7. एलडी_LIBRARY_PATH दुष्प्रभाव
- 8. सेलेरी उपभोक्ता और निर्माता
- 9. IBM Domino और जावा 8
- 10. जावा 8 लैम्बडास और अपवाद
- 11. जावा 8 स्ट्रीम और varargs
- 12. जावा वाइल्डकार्ड अंतर और 8
- 13. जावा 8 u65 और u71
- 14. आकार के ऑपरेटिंग में वीएलए और दुष्प्रभाव
- 15. जावा -BlockingQueue - एकाधिक उत्पादकों, एकल उपभोक्ता
- 16. जावा उत्पादक-उपभोक्ता को रोकने की स्थिति
- 17. जावा समेकन: बहु-निर्माता एक उपभोक्ता
- 18. MongoDB: mapReduce दुष्प्रभाव
- 19. स्काला नक्शा दुष्प्रभाव
- 20. जावा GAE के लिए ओपनआईडी उपभोक्ता
- 21. जावा 8
- 22. जावा 8
- 23. जावा 8
- 24. जावा 8
- 25. जावा 8
- 26. जावा 8
- 27. जावा 8
- 28. जावा 8
- 29. जावा 8
- 30. काफ्का उपभोक्ता सत्र समय
यदि आप कार्यात्मक प्रोग्रामिंग के लिए उपयोग नहीं किया जाता है, तो उस भाषा का आपके लिए बहुत अधिक मतलब नहीं होगा। विचार यह है कि "शुद्ध" कार्यों को केवल उनके इनपुट से पढ़ना चाहिए, और केवल उनके वापसी मूल्यों को लिखना चाहिए (इसलिए कोई साइड इफेक्ट नहीं होगा - फ़ंक्शन चलाने का एकमात्र प्रभाव यह है कि आपको वापसी मान मिलता है।) कार्य जो बदलते हैं कुछ (डेटा संरचना संशोधित करें, आईओ चलाएं, आदि), दुष्प्रभाव होने के लिए कहा जाता है। रिटर्न वैल्यू के बिना एक समारोह में बेहतर दुष्प्रभाव होते थे, अन्यथा यह कुछ भी नहीं कर रहा है। –