Looking for ruby Keywords? Try Ask4Keywords

Ruby Language तर्क बयानों के साथ नियंत्रण प्रवाह


उदाहरण

हालांकि यह प्रतिवादपूर्ण लग सकता है, आप यह निर्धारित करने के लिए तार्किक संचालकों का उपयोग कर सकते हैं कि कोई कथन चलाया गया है या नहीं। उदाहरण के लिए:

File.exist?(filename) or STDERR.puts "#{filename} does not exist!"

यह देखने के लिए जांच करेगा कि क्या फ़ाइल मौजूद है और यदि यह नहीं है तो केवल त्रुटि संदेश प्रिंट करें। or बयान आलसी है, जिसका अर्थ है कि यह निष्पादित करना बंद कर देगा क्योंकि यह सुनिश्चित है कि यह मूल्य सही है या गलत। जैसे ही पहला शब्द सत्य पाया जाता है, दूसरे शब्द के मूल्य की जाँच करने की कोई आवश्यकता नहीं है। लेकिन अगर पहला कार्यकाल गलत है, तो उसे दूसरे कार्यकाल की जाँच करनी चाहिए।

एक सामान्य उपयोग डिफ़ॉल्ट मान सेट करने के लिए है:

glass = glass or 'full' # Optimist! 

यदि यह पहले से सेट नहीं है, तो glass का मान 'पूर्ण' पर सेट होता है। अधिक संक्षेप में, आप का प्रतीक संस्करण का उपयोग कर सकते हैं or :

glass ||= 'empty' # Pessimist. 

दूसरा कथन केवल तभी चलाना संभव है, जब पहला गलत हो:

File.exist?(filename) and puts "#{filename} found!"

फिर से, and आलसी है तो यह केवल दूसरे बयान को निष्पादित करेगा यदि आवश्यक हो तो एक मूल्य पर पहुंचें।

or ऑपरेटर की तुलना में कम पूर्वता है and । इसी तरह, || की तुलना में कम वरीयता है && । शब्द रूपों की तुलना में प्रतीक रूपों में उच्चता होती है। यह जानना आसान है कि आप इस तकनीक को कब असाइन करना चाहते हैं:

a = 1 and b = 2
#=> a==1
#=> b==2
a = 1 && b = 2; puts a, b
#=> a==2
#=> b==2

ध्यान दें कि रूबी स्टाइल गाइड सिफारिश करती है :

and और or कीवर्ड पर प्रतिबंध लगा दिया गया है। न्यूनतम जोड़ा पठनीयता सूक्ष्म कीड़े को पेश करने की उच्च संभावना के लायक नहीं है। बूलियन अभिव्यक्तियों के लिए, हमेशा && और || बजाय। प्रवाह नियंत्रण के लिए, if और unless उपयोग करें; && और || स्वीकार्य भी हैं लेकिन कम स्पष्ट हैं।