2013-01-01 17 views
5

मैं एक ऐप बना रहा हूं और आश्चर्यचकित हूं कि शून्य पर एक अप्रयुक्त ऑब्जेक्ट सेट करना उत्पादन स्तर कोडिंग में एक आम प्रथा है।क्या वस्तुओं को शून्य करने के लिए सामान्य है?

मैं समझता हूं कि यह कचरा कलेक्टर के लिए एक संकेत है और हमेशा किसी वस्तु का निपटान नहीं करेगा।

+1

यह मेरा अनुमान है कि इसे मदद करनी चाहिए, लेकिन ज्यादातर मामलों में आपको भी इसकी आवश्यकता नहीं है। – Linuxios

+0

एकमात्र बार जब मैं एक चर को शून्य पर सेट करता हूं, तब मेरे पास एक जंक वैरिएबल होता है जिसे किसी ज्ञात सेटिंग से शुरू करने की आवश्यकता होती है, और फिर भी, शायद ही कभी मुझे इसकी आवश्यकता होती है। –

उत्तर

0

आपको कचरा कलेक्टर को किसी भी संकेत देने के लिए कुछ भी करने की आवश्यकता नहीं है। बस एक एल्गोरिदम का उपयोग करें जो स्मृति कुशल है, और यह आपके लिए बाकी का ख्याल रखेगा।

9

इस thread

के अनुसार आप एक सदस्य वस्तु nil करने के लिए इसे स्थापित करने का उपयोग कर संदर्भित वस्तु भड़काने जाएगा किया जाता है तो कचरा एकत्र होने के लिए। यदि यह एक स्थानीय चर है तो विधि निकास एक ही चीज़ करेगा।

यह कहा गया कि यदि आप किसी सदस्य को स्पष्ट रूप से nil पर सेट करने की आवश्यकता है तो मैं आपके डिज़ाइन पर सवाल करूंगा।

+0

हां .... आपके उत्तर के लिए धन्यवाद – user1000232

1

नहीं, यह सामान्य अभ्यास नहीं है। केवल दुर्लभ मामले हैं, जहां आप स्पष्ट रूप से ऑब्जेक्ट को शून्य पर सेट करते हैं।

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

हालांकि, व्यावहारिक रूप से, ये स्थितियां अक्सर नहीं होती हैं।

संबंधित मुद्दे