Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Ruby

रूबी में बूलियन मूल्यों को समझना

बूलियन क्या है?

एक बूलियन एक तर्क कथन में उपयोग किया जाने वाला मान है, यह कहने के लिए कि क्या कुछ सही या गलत माना जाता है।

इसका निर्णय लेने के लिए उपयोग किया जा सकता है

रूबी में हमारे पास बूलियन क्लास नहीं है, लेकिन हमारे पास बूलियन ऑब्जेक्ट हैं!

हमारे पास true है &false

TrueClass . के सिंगलटन ऑब्जेक्ट कौन से हैं? &FalseClass

जब आप विधियों का उपयोग करते हैं तो आपको एक बूलियन मान मिलता है :

  • empty?
  • all?
  • match?

और समान चिह्न वाली चीज़ों की तुलना करें :

1 == 1

# true

ध्यान रखें कि == रूबी में भी एक विधि है, इसका मतलब है कि इस पद्धति को कैसे लागू किया जाता है, इसके आधार पर व्यवहार बदल सकता है।

सच्चे और झूठे मूल्य

एक सच्चा मूल्य क्या है?

यह एक ऐसा मान है जिसे true माना जाता है एक बूलियन संदर्भ में, एक if कथन की तरह।

रूबी में सब कुछ सच है लेकिन ये दोनों हैं :

  • false
  • nil

इन दो मूल्यों, और केवल इन दोनों को, हम "मिथ्या" कहते हैं।

बूलियन अभ्यास में हैं

इसका मतलब है कि अगर आपकी कोई शर्त है...

इसे पसंद करें :

if bacon
  puts "we got bacon"
end

रूबी जाँचता है कि क्या bacon सच है (कुछ भी लेकिन false / nil ) स्ट्रिंग को प्रिंट करने से पहले।

दूसरे शब्दों में :

यदि आप bacon पर कोई विधि कॉल नहीं कर रहे हैं, तो आपको शून्य की जांच करने की आवश्यकता नहीं है ।

सुरक्षित नेविगेटर

कभी-कभी आप ऑब्जेक्ट पर कोई विधि कॉल करना चाहते हैं।

इसे पसंद करें :

if bacon.stock
  # ...
end

यह आपको एक त्रुटि देगा यदि bacon शून्य है, इससे बचने के लिए आप निम्न कार्य कर सकते हैं…

उदाहरण :

if bacon&.stock
  # ...
end

यह &. इसे सुरक्षित नेविगेशन ऑपरेटर कहा जाता है और इसे रूबी 2.3 में पेश किया गया था।

बूलियन तरीके

क्या आपने इन विधियों को एक प्रश्न चिह्न के साथ समाप्त होते देखा है?

जैसे empty?

हम इन "विधेय विधियों" को कहते हैं और परंपरा के अनुसार वे हमेशा true . लौटाते हैं या false

आप अपना खुद का लिख ​​सकते हैं :

def published?
  # ...
end

def ready?
  # ...
end

यह एक बेहतरीन पैटर्न है जो आपके कोड को रूबी जैसा महसूस कराएगा।

बूलियन पैरामीटर एक अच्छा विचार नहीं हैं

हमने केवल बूलियन विधियों को शामिल किया है, जो बहुत बढ़िया हैं, लेकिन आप बूलियन पैरामीटर से बचना चाहते हैं।

उदाहरण :

def bacon(raw)
end

bacon(false)

जब आप bacon(false) को देखते हैं आपको नहीं पता कि यह false क्या है? मतलब।

पता लगाने के लिए आपको कोड में खोदना होगा।

उसके ऊपर, एक बूलियन मान का अर्थ है कि आपका तरीका जितना आवश्यक होना चाहिए उससे अधिक जटिल होने जा रहा है। ।

समाधान?

विधि को दो भागों में विभाजित करें, या अपने कोड को इस तरह से डिज़ाइन करें जहाँ यह आवश्यक न हो।

बूलियन लॉजिक

TrueClass और FalseClass कुछ तरीकों को लागू करते हैं।

to_s की तरह, और निरीक्षण करें।

लेकिन अधिक दिलचस्प हैं :

  • &
  • |
  • ^

ये अजीब दिखने वाले तरीके क्या हैं?

बूलियन तर्क।

यहां एक बूलियन तर्क तालिका है :

Name प्रतीक TRUE / TRUE TRUE / FALSE
और & सत्य गलत
या | सत्य सत्य
XOR ^ गलत सत्य

उदाहरण :

true & true

जबकि हम अक्सर अपने कोड में बूलियन लॉजिक का उपयोग नहीं करते हैं, यह कंप्यूटर के काम करने के तरीके की नींव बनाता है, इसलिए इसके बारे में जानना दिलचस्प है।

सारांश

आपने रूबी में बूलियन मूल्यों के बारे में सीखा है! याद रखें कि सब कुछ "सत्य" है, केवल अपवाद false . है &nil

इस लेख को साझा करना न भूलें ताकि अधिक लोग इसे ढूंढ सकें 🙂

पढ़ने के लिए धन्यवाद।


  1. रूबी में इंसर्शन सॉर्ट को समझना

    नोट:रूबी के साथ विभिन्न सॉर्टिंग एल्गोरिदम को लागू करने पर विचार करने वाली श्रृंखला में यह भाग 4 है। भाग 1 ने बबल सॉर्ट की खोज की, भाग 2 ने चयन प्रकार की खोज की, और भाग 3 ने मर्ज सॉर्ट की खोज की। जैसा कि हम डेटा सॉर्ट करने के लिए विभिन्न तरीकों का पता लगाना जारी रखते हैं, हम इंसर्शन सॉर्ट की ओर रु

  1. रूबी में डुप बनाम क्लोन:अंतर को समझना

    क्या आप जानते हैं कि आप रूबी में किसी वस्तु की प्रतिलिपि बना सकते हैं? इतना ही नहीं, ऐसा करने के दो अलग-अलग तरीके हैं! ये विधियां हैं : dup clone हम एक पल में मतभेदों का पता लगाएंगे, लेकिन पहले… आप किसी वस्तु का क्लोन क्यों बनाना चाहते हैं ? रूबी में कई वस्तुएं परिवर्तनशील हैं, आप उन्हें बदल

  1. रूबी फ्रीज विधि - वस्तु परिवर्तनशीलता को समझना

    किसी वस्तु के परिवर्तनशील होने का क्या अर्थ है? फैंसी शब्दों को भ्रमित न होने दें, “परिवर्तनशीलता ” का सीधा सा मतलब है कि किसी वस्तु की आंतरिक स्थिति को बदला जा सकता है। जमे हुए . को छोड़कर, यह सभी वस्तुओं का डिफ़ॉल्ट है , या वे जो विशेष वस्तुओं की सूची का हिस्सा हैं। दूसरे शब्दों में, रूबी में सभ