मुझे याद है कि कहीं न कहीं इसे पढ़ना notऔर !अलग तरीके से मूल्यांकन किया जाता है, और मैं इसे प्रलेखन में नहीं पा सकता हूं। क्या वे पर्यायवाची हैं?
जवाबों:
वे लगभग पर्यायवाची हैं, लेकिन काफी नहीं। अंतर यह है कि है !की तुलना में अधिक पूर्वता है not, बहुत पसंद &&है और ||अधिक से अधिक पूर्वता के हैं andऔर or।
!सभी संचालकों की सर्वोच्च प्राथमिकता है, और notसबसे कम में से एक, आप रूबी डॉक्स पर पूर्ण तालिका पा सकते हैं ।
एक उदाहरण के रूप में, विचार करें:
!true && false
=> false
not true && false
=> true
पहले उदाहरण में, !है उच्चतम पूर्वता है, तो आप को प्रभावी ढंग से कह रहे हैं false && false।
दूसरे उदाहरण में, notकी तुलना में कम पूर्वता है true && false, इसलिए यह "से" स्विच falseकिया true && falseगया true।
सामान्य दिशानिर्देश ऐसा प्रतीत होता है कि आपको चिपकना चाहिए !, जब तक कि आपके पास उपयोग करने का कोई विशिष्ट कारण न हो not। !रूबी में अन्य भाषाओं की तरह ही व्यवहार किया जाता है, और "से कम आश्चर्यजनक" है not।
unlessउस मामले में उपयोग कर सकते हैं ?
unlessवास्तव में माणिक दुनिया में पसंदीदा नहीं है। आम सहमति यह है कि यह उस तरह से हो जाता है जब !ज्यादातर परिस्थितियों में काम करता है। मुझे यकीन है कि ऐसे मामले हैं जब तक अधिक अभिव्यंजक नहीं हो सकता है, लेकिन मैं स्पष्ट हूं।
unless। निकटतम बात हम एक आम सहमति के लिए अन्यथा कहते हैं।
notहो सकती है। पायथन में, मैं कभी-कभी बूलियनों को वैरिएबल्स में असाइन करता हूं ताकि अगर-कथनों को आसानी से पढ़ा जा सके। इसका मतलब हो सकता है कि पैटर्न का उपयोग करना x = not y, जहां y कुछ जटिल है। रूबी में, x = !yकाम करता है, लेकिन x = not yहो जाता है syntax error, unexpected tIDENTIFIER, expecting '('। पूर्ववर्ती आदेश का अर्थ है कि यह असाइनमेंट ऑप के दाईं ओर काम करने के लिए कोष्ठक की आवश्यकता है x = (not y):।