2011-03-25 15 views
25

स्थानों मैं जोड़ने के लिएवहाँ एक रूबी एक लाइन है "एक्स अगर वापसी"?

if this_flag 
    return 
end 

कि रूबी के साथ एक लाइन पर किया जा सकता है की जरूरत है की एक टन है?

+6

पूछने से पहले इसका परीक्षण क्यों न करें? 'Irb' का उपयोग करें और आप जो कर सकते हैं उसके साथ खेलें और रूबी के साथ क्या कर सकते हैं :) – DJTripleThreat

+3

@ डीजेट्रिपल थ्रेड: मुझे "मैं आपके लिए आईआरबी दें" बनाना चाहता हूं। उपरोक्त दो की तरह नफरत के लिए –

+1

, कृपया नीचे दी गई उत्तरों के उत्कृष्ट रेंज को नोट करें, जो रूबी की शक्ति को हाइलाइट करते हैं (स्पष्ट रूप से एक स्पष्ट उत्तर के बारे में सोचने के बजाय)। यही वह शक्ति है और यही कारण है कि मैं 'स्पष्ट' प्रश्न पूछने के लिए कभी माफी नहीं मांगूंगा। – jpwynn

उत्तर

75

क्या एक रूबी एक-पंक्ति "return if x" है?

हाँ:

return if x 

मैं रूबी प्यार :-)

+3

मैं वहां भी जा रहा हूं ... बस KNEW उनके पास शॉर्टकट होगा! – jpwynn

6
जोर्ग डब्ल्यू Mittag के अच्छे जवाब देने के लिए कुछ अतिरिक्त

:

x && return 
x and return 
if x then return end 

मैं वास्तव में पहले दो रूपों की सलाह नहीं देते : हालांकि, उपर्युक्त उदाहरण सभी वैध प्रस्तुतियां हैं। मैं आम तौर पर return से बचना पसंद करता हूं - रूबी में अधिकांश व्याकरण संरचना उपयोगी अभिव्यक्तियां हैं।

हैप्पी कोडिंग।

4

रुबी हमेशा आखिरी चीज़ लौटाता है ... क्यों न केवल अपने कोड को अलग-अलग बनाएं?

def returner(test)  
    "success" if test 
end 

जो भी आपने आखिरी बार किया है वह वापस आ जाएगा। मुझे रुबी पसंद है।

+1

+1। बस स्पष्ट करने के लिए: इस मामले में, 'शून्य' वापस कर दिया जाएगा। –

+1

हां, विधि परिभाषा 'शून्य' वापस आ जाएगी। हालांकि, विधि को कॉल करने से अलग-अलग चीजें वापस आ जाएंगी ... निर्भर करता है। 'रिटर्नर (सत्य)' => '" सफलता "' जबकि 'रिटर्नर (झूठा) '=>' nil' – Ryanmt

1

अपेक्षित वर्ग प्रकार नीचे दिए गए उदाहरण की जांच करने के लिए एक विधि बनाएं। विधि check_class जैसे ही यह सही वर्ग पाता है, सत्य वापस आ जाएगा। उपयोगी अगर आपको किसी भी कारण से विभिन्न वर्ग प्रकारों की संख्या का विस्तार करने की आवश्यकता हो सकती है।

def check_class(x) 
    return true if is_string(x) 
    return true if is_integer(x) 
    # etc etc for possible class types 
    return false # Otherwise return false 
end 

def is_string(y) 
    y.is_a? String 
end 

def is_integer(z) 
    z.is_a? Integer 
end 


a = "string" 
puts "#{check_class(a)}" 
संबंधित मुद्दे