मुझे लंबे समय से पता चला है कि रुबी में "स्थिरांक" (यानी, परिवर्तनीय नाम जो पूंजीकृत हैं) वास्तव में स्थिर नहीं हैं। अन्य प्रोग्रामिंग भाषाओं की तरह, किसी ऑब्जेक्ट का संदर्भ वैरिएबल/स्थिर में संग्रहीत एकमात्र चीज है। (साइडबार: रूबी में संशोधित वस्तुओं को संशोधित करने से "फ्रीज" करने की सुविधा है, जहां तक मुझे पता है, कई अन्य भाषाओं में दी जाने वाली क्षमता नहीं है।)रूबी में निरंतर पुनः आवंटित करते समय अपवाद फेंको?
तो मेरा प्रश्न यहां है: जब आप पुनः- एक निरंतर में एक मूल्य निर्दिष्ट, तुम इतनी तरह एक चेतावनी मिलती है:
>> FOO = 'bar'
=> "bar"
>> FOO = 'baz'
(irb):2: warning: already initialized constant FOO
=> "baz"
वहाँ एक अपवाद फेंक करने के बजाय एक चेतावनी मुद्रण रूबी मजबूर करने के लिए एक तरीका है? कभी-कभी पुन: असाइनमेंट क्यों होता है यह पता लगाना मुश्किल है।
दूसरे प्रश्न को इंगित करने के लिए धन्यवाद - मैंने इसके लिए 'कर्नेल.वर्न'' का उपयोग करने के बारे में सोचा नहीं होगा। ऐसा लगता है कि निरंतर पुन: असाइनमेंट इसका उपयोग नहीं करता है। –
मैंने वास्तव में कोशिश नहीं की थी; लेकिन मैं कल्पना कर सकता हूं कि निरंतर असाइनमेंट भाषा का हिस्सा हो सकता है और इस प्रकार सी कोड में संभाल सकता है। इस मामले में इसमें हुक करना मुश्किल होगा, अकेले रूबी अपवाद उठाएं। – averell