अन्य प्रकार के चर के लिए, मैं ||=
का उपयोग करता हूं, लेकिन यह बूलियन के लिए काम नहीं करता है (x ||= true
एक्स को सत्य को असाइन करता है भले ही एक्स को पहले झूठा सौंपा गया हो)।रूबी में आप बूलियन डिफ़ॉल्ट मान कैसे सेट करते हैं?
मैंने सोचा था कि यह काम करेगा:
x = true unless defined?(x)
लेकिन यह नहीं है: यह किसी कारण के लिए प्रदान करती है x करने के लिए नहीं के बराबर। (यहाँ एक व्याख्या की सराहना किया जाएगा।)
मैं एक विधि है कि काम करता है पता है:
unless defined?(x)
x = true
end
लेकिन यह नहीं बल्कि अत्यधिक शब्द है। रूबी में बूलियन चर के लिए डिफ़ॉल्ट मान असाइन करने का एक और संक्षिप्त तरीका है?
वहाँ एक कारण है कि आप एक्स शून्य (जो सभी इरादे और प्रयोजनों के लिए झूठे के बराबर है) को सौंपा जा नहीं करना चाहती है? –
@ sylvain.joyeux क्योंकि वह चाहता है कि यह 'सत्य' हो, झूठी नहीं। –
@ sylvain.joyeux झूठी जगह के बजाय शून्य का उपयोग करना ठीक है, लेकिन यह '|| =' के साथ परेशानी का समाधान नहीं करता है। यदि आप '|| =' का उपयोग कर x के लिए डिफ़ॉल्ट मान असाइन करने का प्रयास करते हैं, और x को पहले शून्य पर असाइन किया गया था, तो यह शून्य के मान को बनाए रखने के बजाय ओवरराइड किया जाएगा (क्योंकि शून्य गलत है)। – evanrmurphy