में तर्क के रूप में एकाधिक कोड ब्लॉक पास करना मेरे पास एक विधि है जो कोड ब्लॉक लेती है।रुबी
def opportunity
@opportunities += 1
if yield
@performances +=1
end
end
और मैं इसे इस तरह कहते हैं:
opportunity { @some_array.empty? }
लेकिन मैं इसे कैसे एक से अधिक कोड ब्लॉक इतना है कि मैं उपज इस्तेमाल कर सकते हैं दो बार इस तरह से पारित करते हैं, कुछ:
def opportunity
if yield_1
@opportunities += 1
end
if yield_2
@performances +=1
end
end
और:
opportunity {@some_other_array.empty?} { @some_array.empty? }
मुझे पता है कि यह उदाहरण उपज के बिना किया जा सकता है, लेकिन यह सिर्फ उदाहरण के लिए है।
क्या यह घोषणा करने का दूसरा तरीका है कि – user5020
Proc.new {} या lambda {} भी काम करता है। कोई भी ऑब्जेक्ट जो 'कॉल' का जवाब देता है, – Kylee
कार्य करेगा '।() '' Call' का उपनाम है? – MrYoshiji