एफ # मंत्र में null
, Nullable<T>
और इसके जैसे एक आंत से बचने लगता है। बदले में, हम विकल्प विकल्पों का उपयोग करने के लिए माना जाता है। ईमानदार होने के लिए, मुझे वास्तव में अंतर दिखाई नहीं देता है।विकल्प प्रकार और एक शून्य प्रकार के बीच क्या अंतर है?
एफ # विकल्प प्रकार के मेरे समझ है कि यह आपको एक प्रकार है जो अपनी सामान्य मूल्यों, या
None
के किसी भी शामिल कर सकते हैं निर्दिष्ट करने के लिए अनुमति देता है। उदाहरण के लिए,Option<int>
के अतिरिक्तint
के सभी मानों को अनुमति देता है।सी # शून्य प्रकारों की मेरी समझ यह है कि यह आपको एक प्रकार निर्दिष्ट करने की अनुमति देता है जिसमें इसके सामान्य मान, या
null
शामिल हो सकते हैं। उदाहरण के लिए,Nullable<int>
a.k.aint?
null
के अतिरिक्तint
के सभी मानों को अनुमति देता है।
क्या अंतर है? Nullable
और Option
, null
और None
के साथ कुछ शब्दावली प्रतिस्थापन करें, और मूल रूप से वही बात है। null
पर सभी झगड़े क्या हैं?
यह यथासंभव जल्दी से तर्क त्रुटियों से परहेज करने के बारे में है - 'विकल्प' के साथ, आपको 'कोई नहीं' की जांच करने में विफल होने के लिए एक कंपाइलर चेतावनी/त्रुटि मिलती है; 'शून्य' के साथ आप नहीं करते हैं। – ildjarn
तो सिद्धांत में यदि पैटर्न मिलान के साथ सी # था तो यह सुनिश्चित किया गया कि आपने 'शून्य' केस संभाला है, तो यह धो होगा? –
आईएमओ, काफी ज्यादा, हालांकि अन्य लोग 'शून्य' की _semantic_ संवेदनशीलता के बारे में अन्यथा बहस करेंगे। – ildjarn