इसमें कुछ भी गलत नहीं है। यदि आपके पास कोई फ़ंक्शन है जो एक मान देता है लेकिन प्रोग्राम की स्थिति को किसी भी तरीके से बदलता है (जिसे साइड इफेक्ट कहा जाता है), फ़ंक्शन को कॉल करना, लेकिन रिटर्न वैल्यू को अनदेखा करना सभी दुष्प्रभावों को लागू करने का कारण बनता है। यदि आप इसे स्टोर नहीं करते हैं, तो आप निश्चित रूप से वापसी मूल्य का उपयोग करने में सक्षम नहीं होंगे, लेकिन कभी-कभी आप जो भी चाहते हैं वह कॉल के साइड इफेक्ट्स हैं।
कुछ ऐसे लोग हैं जो एपीआई को इस तरह से डिजाइन करने में विश्वास करते हैं कि उनके साइड इफेक्ट्स (कमांड) और फ़ंक्शंस के कुछ कार्यक्रमों (प्रश्नों) को देखने के लिए बुलाए गए कार्यों को जितना संभव हो सके अलग किया जाता है। इस सिद्धांत को Command-Query Separation कहा जाता है। विचार यह है कि कुछ कार्य जो कुछ लौटाते हैं उन्हें प्रोग्राम के राज्य को संशोधित नहीं करना चाहिए क्योंकि वे इसे देख रहे हैं, और अवलोकन के कार्य को राज्य को प्रभावित नहीं करना चाहिए। सभी फ़ंक्शंस जो कुछ भी वापस नहीं करते हैं उन्हें तब कमांड के रूप में देखा जाता है, जिन्हें विशेष रूप से उनके दुष्प्रभावों के लिए कहा जाता है।
इसलिए जो लोग इन सिद्धांतों का पालन करते हैं, वे सोच सकते हैं कि चूंकि आपका कार्य स्पष्ट रूप से दुष्प्रभाव लागू करता है (या आप इसे क्यों कॉल करेंगे और वापसी मूल्य के बारे में परवाह नहीं करेंगे?), इसे किसी भी राज्य का निरीक्षण नहीं करना चाहिए (वापसी मूल्य है) । नोट, हालांकि, यह सिद्धांत हमेशा पत्र का पालन करने के लिए नहीं है, और इस पर कोई बड़ा समझौता भी नहीं है।
कुछ वकील कमांड-क्वेरी अलगाव क्यों करते हैं? क्योंकि यह सुनिश्चित करता है कि प्रश्नों के बीच कोई आदेश लागू नहीं किया गया है, तो लगातार पूछताछ एक ही जवाब लौटाती है। यह अपरिवर्तनीयता का एक कमजोर रूप है, और इस कार्यक्रम के तर्क के बारे में तर्क के लिए अपर्याप्तता के फायदे के कमजोर रूप में है। जब लगातार लागू किया जाता है, वस्तुओं के बीच वस्तुओं अपरिवर्तनीय हैं।
मेरी नजर में, इसे ध्यान में रखते हुए सिद्धांत अक्सर कम भ्रामक एपीआई और स्पष्ट कार्यक्रम तर्क में जो परिणाम है, लेकिन यह बहुत दूर नहीं किया जाना चाहिए। ऐसे समय होते हैं जब आपको साइड इफेक्ट लागू करने और मूल्य वापस करने की आवश्यकता हो सकती है। जब वापसी मूल्य केवल एक सफल मूल्य है, हालांकि, विफलता पर अपवाद उठाने पर विचार करें।
यदि आप कुछ लौट रहे हैं लेकिन इसकी आवश्यकता नहीं है तो आप "कुछ" क्यों लौटते हैं। ? बस वापसी करो; – RobertPitt
थॉमस क्लेसन ने इस तरह के एक समारोह, 'mysql_query' के नीचे एक बिल्कुल अच्छा उदाहरण दिया। शायद मुझे खुद को बेहतर समझा जाना चाहिए था ... ऐसा नहीं है कि कभी भी वापसी मूल्य की आवश्यकता नहीं होगी, बस इतना है कि मुझे इसकी आवश्यकता हो सकती है, या शायद नहीं। और मैं उपयोगकर्ताओं को विकल्प देना चाहता हूं। –