मैं एक चर में एक "कोड ब्लॉक" स्टोर करने के लिए इस्तेमाल किया जा करना चाहते हैं, जैसे कुछ स्टोर करने के लिए? (या अगर यह सिर्फ असंभव है)कैसे गहरे लाल रंग का कोड ब्लॉक
17
A
उत्तर
24
वहाँ रूबी में यह करने के लिए कई तरीके हैं, जिनमें से एक में प्रोक उपयोग करने के लिए दिए गए हैं:
foo=Proc.new do |test|
puts test
end
3.upto(8) { foo.call("hello world") }
Procs के बारे में और अधिक पढ़ें:
- http://www.reactive.io/tips/2008/12/21/understanding-ruby-blocks-procs-and-lambdas
- http://www.skorks.com/2010/05/ruby-procs-and-lambdas-and-the-difference-between-them/
अद्यतन, उपरोक्त विधि फिर से लिखा जा सकता है निम्नानुसार:
# using lower-case **proc** syntax, all on one line
foo = proc { |test| puts test }
3.upto(8) { foo.call("hello world") }
# using lambda, just switch the method name from proc to lambda
bar = lambda { |test| puts test }
3.upto(8) { bar.call("hello world") }
सूक्ष्म मतभेदों के साथ वे मूल रूप से बहुत ही समान तरीके हैं।
और आखिरकार, मैंने जो कुछ भी रेखांकित किया है, उसके लिए शायद अधिक शानदार तरीके हैं, बेहतर तरीके से किसी से सुनने के लिए अच्छा हो। उम्मीद है की यह मदद करेगा।
बहुत बहुत धन्यवाद। लिंक के लिए और भी अधिक। क्या आप इतने दयालु हो सकते हैं कि लैम्ब्स का भी उल्लेख शामिल है? ऐतिहासिक उद्देश्य के लिए। –
@ शिंगेट्सू, मैंने लैम्ब्डा के साथ जोड़ा और अपडेट किया, साथ ही प्रो दृष्टिकोण के थोड़ा सरलीकृत संस्करण भी – stephenmurdoch
@ शिंगेट्सू: लैम्ब्डा ऐतिहासिक नहीं हैं। प्रक्रियाओं के बजाय आपको लगभग हमेशा * उनका उपयोग करना चाहिए। वे अधिक पूरी तरह से विशेष रुप से प्रदर्शित हैं और मानक हैं। रॉबर्ट सोसिंकसी के पोस्ट का उल्लेख करने के लिए – Linuxios