लूप के बाद शून्य लौटें और रूबी में ब्लॉक होने तक भी
मेरे पास नीचे के रूप में एक कार्य कोड है। क्या लूप के nil
बाद each
और unless else
नीचे के उदाहरण में लौटने का कोई बेहतर तरीका है ?
def find_member(member_name)
unless members.empty?
members.each do |member|
if member.name == member_name
return member
end
end
nil
else
nil
end
end
मुझे nil
प्रत्येक मामले में पास होना चाहिए क्योंकि अन्य विधियों में अलग-अलग स्थितियां हैं जहां यह विधि कहा जाता है। यही कारण है कि मैंने ऊपर जैसा कोड लिखा है।
जवाब
5 D.SM
रूबी में एक detect
विधि है, इसलिए आपकी पूरी विधि को प्रतिस्थापित किया जा सकता है
members.detect { |member| member.name == member_name }
एक तरफ के रूप में, each
खाली सरणियों के लिए ठीक काम करता है, इसलिए empty?
आपके पास जो चेक है वह पूरी तरह से अनावश्यक है भले ही आप स्पष्ट लूप रखें।