देर से जवाब, लेकिन मुझे लगता है कि यह इस विषय में कुछ नया जोड़ता है।
पिछले प्रश्नों में से किसी ने भी मूल प्रश्न का उत्तर नहीं दिया है। कुछ ने निरंतरता की कमी को उचित ठहराने का प्रयास किया है, जबकि अन्य ने ऐसे तरीके दिखाए हैं जिनसे हम निरंतर की कमी से निपट सकते हैं। लेकिन किसी ने निरंतर के लाभ के लिए एक आकर्षक औचित्य प्रदान नहीं किया है, इसलिए इसकी कमी अभी भी ठीक से नहीं बताई गई है।
एक स्थिरांक उपयोगी होगा क्योंकि यह कुछ कोड त्रुटियों को किसी का ध्यान नहीं जाने से रोकेगा।
कहें कि आपके पास "" के लिए सैकड़ों संदर्भों के साथ एक बड़ा कोड आधार है। कोड में स्क्रॉल करते समय कोई इनमें से एक को संशोधित करता है और इसे "" में बदलता है। इस तरह के बदलाव से उत्पादन में किसी का ध्यान नहीं जाने की संभावना अधिक होती है, जिसके कारण यह कुछ समस्या का कारण बन सकता है जिसका स्रोत पता लगाने के लिए मुश्किल होगा।
OTOH, EMPTY नामक एक पुस्तकालय स्थिरांक, यदि उसी त्रुटि के अधीन, EM PTY जैसी किसी चीज़ के लिए संकलक त्रुटि उत्पन्न करेगा।
अपने स्वयं के निरंतर को परिभाषित करना अभी भी बेहतर है। कोई भी गलती से इसके आरंभीकरण को बदल सकता है, लेकिन इसके व्यापक उपयोग के कारण, इस तरह की त्रुटि का प्रभाव किसी एकल उपयोग के मामले में किसी त्रुटि के कारण किसी का ध्यान नहीं जाना होगा।
यह सामान्य लाभों में से एक है जो आपको शाब्दिक मूल्यों के बजाय स्थिरांक का उपयोग करने से मिलता है। आमतौर पर लोग मानते हैं कि दर्जनों स्थानों पर उपयोग किए जाने वाले मूल्य के लिए एक स्थिर का उपयोग करने से आप आसानी से उस मूल्य को केवल एक ही स्थान पर अपडेट कर सकते हैं। कम बार स्वीकार किया जाता है कि यह उस मूल्य को गलती से संशोधित होने से रोकता है, क्योंकि ऐसा परिवर्तन हर जगह दिखाई देगा। तो, हाँ, "" EMPTY से छोटा है, लेकिन EMPTY "" से अधिक सुरक्षित है।
इसलिए, मूल प्रश्न पर वापस आते हुए, हम केवल अनुमान लगा सकते हैं कि भाषा डिजाइनरों को शाब्दिक मूल्यों के लिए स्थिरांक प्रदान करने के इस लाभ के बारे में पता नहीं था जो अक्सर उपयोग किए जाते हैं। उम्मीद है, हम एक दिन जावा में स्ट्रिंग स्थिरांक देखेंगे।
outputBlah = ""
, और वह संभवत:something == String.Empty
अधिक पसंद करता हैsomething.Length > 0
(आप एक अशक्त जांच छोड़ देते हैं।)