डॉक्स से:
- (वस्तु?) का पता लगाने (ifnone = nil) {| obj | ...}
- (वस्तु?) खोजें (ifnone = nil) {| obj | ...}
- (वस्तु) का पता लगाना (ifnone = nil)
- (ऑब्जेक्ट) खोजें (ifnone = nil)
ब्लॉक में प्रत्येक प्रविष्टि को पास करने के लिए। पहला रिटर्न जिसके लिए ब्लॉक गलत नहीं है। यदि कोई ऑब्जेक्ट मेल नहीं खाता है, तो ifnone को कॉल करता है और निर्दिष्ट किए जाने पर अपना परिणाम लौटाता है, अन्यथा शून्य रिटर्न करता है।
यदि कोई ब्लॉक नहीं दिया जाता है, तो इसके बजाय एक एन्यूमरेटर लौटाया जाता है।
(1..10).detect {|i| i % 5 == 0 and i % 7 == 0 } #=> nil
(1..100).detect {|i| i % 5 == 0 and i % 7 == 0 } #=> 35
यह मेरे लिए काम किया:
clients.detect{|client| client.last['client_id'] == '2180' } #=> ["orange", {"client_id"=>"2180"}]
clients.detect{|client| client.last['client_id'] == '999999' } #=> nil
देखें:
http://rubydoc.info/stdlib/core/1.9.2/Enumerable#find-instance_method
findऔरselectवह यह है किfindरिटर्न पहला मैच औरselect(जिसके द्वारा एलियास किया गयाfindAll) सभी मैचों देता है।