मैं एम्बेडेड स्क्रिप्टिंग भाषा के लिए रूबी 1.9.1 का उपयोग करने की कोशिश कर रहा हूं, ताकि "एंड-यूज़र" कोड रूबी ब्लॉक में लिखा जाए। इसके साथ एक मुद्दा यह है कि मैं चाहूंगा कि उपयोगकर्ता ब्लॉक में 'वापसी' कीवर्ड का उपयोग करने में सक्षम हों, इसलिए उन्हें निहित रिटर्न मानों के बारे में चिंता करने की आवश्यकता नहीं है। इसे ध्यान में रखते हुए, मैं इस तरह की चीज करना चाहता हूं:
def thing(*args, &block)
value = block.call
puts "value=#{value}"
end
thing {
return 6 * 7
}
यदि मैं उपरोक्त उदाहरण में 'रिटर्न' का उपयोग करता हूं, तो मुझे एक लोकलजंपायर मिलता है। मुझे पता है कि ऐसा इसलिए है क्योंकि विचाराधीन ब्लॉक एक प्रोक है न कि लैम्ब्डा। यदि मैं 'रिटर्न' को हटाता हूं तो कोड काम करता है, लेकिन मैं वास्तव में इस परिदृश्य में 'रिटर्न' का उपयोग करने में सक्षम होना चाहूंगा। क्या यह संभव है? मैंने खंड को लंबोदर में बदलने की कोशिश की है, लेकिन परिणाम समान है।