2011-05-25 9 views
7

क्या निम्न के लिए रूबी शॉर्टकट है?"अगर (श्रेणी में संख्या) के लिए रूबी शॉर्टकट ..."

if (x > 2) and (x < 10) 
    do_something_here 
end 

मैंने सोचा कि मैं उस प्रभाव के लिए कुछ देखा है, लेकिन यह करने के लिए एक संदर्भ नहीं मिल रहा। बेशक यह देखना मुश्किल है जब आप नहीं जानते कि आप किस ऑपरेटर की तलाश में हैं।

+0

'(3 ... 10) .include? x' –

उत्तर

16
if (3..9).include? x 
    # whatever 
end 

एक sidenote के रूप में, आप भी श्रेणियों के लिए ट्रिपल बराबर ऑपरेटर का उपयोग कर सकते हैं:

if (3..9) === x 
    # whatever 
end 

इस की मदद से आप के रूप में अच्छी मामले बयान में उन्हें इस्तेमाल:

case x 
    when 3..9 
    # Do something 
    when 10..17 
    # Do something else 
end 
+0

ट्रिपल बराबर शॉर्टकट है जिसे मैं इस विशेष मामले में ढूंढ रहा था! धन्यवाद! – jpwynn

7
do_something if (3..9).include?(x) # inclusive 
do_something if (3...10).include?(x) # inclusive start, exclusive end 

Range वर्ग देखें; आप उन्हें hosted on my website के लिए एक परिचय पढ़ सकते हैं।

+0

यह रेंज का उपयोग करता है> http://www.ruby-doc.org/core/classes/Range.html – eveevans

+0

आपको बहुत धन्यवाद। और आपकी वेबसाइट एक असाधारण संसाधन है जिसे मैं नहीं जानता था !! – jpwynn

+2

'रेंज # के साथ सावधानी बरतें?'। यदि श्रेणी गैर-संख्यात्मक है तो यह सीमा में * प्रत्येक * तत्व का मूल्यांकन करता है। '(" aaaaaa ".." zzzzzz ") शामिल हैं? (" zzzzzz ") 'पहले से ही मेरे सिस्टम पर ** 2 मिनट ** लेता है। पूर्णांक के लिए, जैसा कि सवाल बताता है, हालांकि यह कोई समस्या नहीं है। – molf

0

कुछ इस तरह ?

do_something if (3..9) === x 

या

r = 3..9 
if r === x 
    . . . 
संबंधित मुद्दे