मुझे याद है कि कहीं न कहीं इसे पढ़ना 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)
:।