मैं लोगों को इस बात की बात सुनता रहता हूं कि गैर-निरर्थक संदर्भ प्रकार कितने बग हल करेंगे और प्रोग्रामिंग को इतना आसान बना देंगे। यहां तक कि नल के निर्माता भी इसे billion dollar mistake कहते हैं, और Spec# ने इस समस्या का मुकाबला करने के लिए गैर-शून्य प्रकारों को पेश किया है।गैर-नामुमकिन प्रकारों के बारे में बहस
संपादित करें: SpeC# के बारे में मेरी टिप्पणी को अनदेखा करें। मैंने गलत समझा कि यह कैसे काम करता है।
संपादित करें 2: मैं गलत लोगों से बात कर रही किया जाना चाहिए, मैं वास्तव में, किसी :-)
साथ बहस करने के लिए तो मुझे लगता है कि होगा उम्मीद कर अल्पमत में किया जा रहा था, कि मैं गलत हूं, लेकिन मुझे समझ में नहीं आ रहा है कि इस बहस में कोई योग्यता क्यों है। मैं एक बग-खोज उपकरण के रूप में शून्य देखता हूं। निम्नलिखित पर विचार करें:
class Class { ... }
void main() {
Class c = nullptr;
// ... ... ... code ...
for(int i = 0; i < c.count; ++i) { ... }
}
BAM! उपयोग का उल्लंघन। कोई c
प्रारंभ करना भूल गया।
अब इस पर विचार करें:
class Class { ... }
void main() {
Class c = new Class(); // set to new Class() by default
// ... ... ... code ...
for(int i = 0; i < c.count; ++i) { ... }
}
ओह। लूप चुपचाप छोड़ दिया जाता है। समस्या को ट्रैक करने में कुछ समय लग सकता है।
यदि आपकी कक्षा खाली है, तो कोड किसी भी तरह विफल होने जा रहा है। सिस्टम खुद को समझने के बजाय आपको क्यों नहीं बताता है (यद्यपि थोड़ा अशिष्टता)?
दूसरों को नल का आनंद लेने के लिए अच्छा लगता है, मैं अभी भी स्कूल में हूं इसलिए मुझे लगता है कि कुछ ऐसा है जो मुझे याद आ रहा है। –
"कोई मूल्य नहीं" संभालने के अधिक सिद्धांतबद्ध तरीके हैं। एनयूएलएल में प्राचीन प्रकार, जैसे int। एक प्रकार के सिस्टम के लिए केवल सभी प्रकार के मूल्यों की निरंतरता का प्रतिनिधित्व करने के लिए बेहतर है, बजाय संदर्भों के लिए केवल स्पष्ट रूप से। हास्केल के "हो सकता है" और एमएल/ओकैमल/एफ # के "विकल्प" प्रकार देखें कि यह कैसे किया जाना चाहिए। – MichaelGG
संभावित डुप्लिकेट [बिना शून्य के भाषाओं के लिए सर्वश्रेष्ठ स्पष्टीकरण] (http://stackoverflow.com/questions/3989264/best-explanation-for-languages-without-null) – nawfal