उम्मीद है कि मैंने "बतख टाइपिंग" के अर्थ को गलत समझा नहीं है, लेकिन जो मैंने पढ़ा है, इसका मतलब है कि मुझे इस प्रकार के आधार पर कोड लिखना चाहिए कि किस प्रकार की वस्तु/वर्ग के बजाय तरीकों का जवाब देता है।क्या मैं इस विधि को बतख टाइपिंग के साथ सुधार सकता हूं?
def convert_hash(hash)
if hash.keys.all? { |k| k.is_a?(Integer) }
return hash
elsif hash.keys.all? { |k| k.is_a?(Property) }
new_hash = {}
hash.each_pair {|k,v| new_hash[k.id] = v}
return new_hash
else
raise "Custom attribute keys should be ID's or Property objects"
end
end
क्या मैं चाहता हूँ लगता है कि मैं एक हैश के साथ अंत जहां कुंजी एक पूर्णांक एक ActiveRecord वस्तु की आईडी का प्रतिनिधित्व कर रहे हैं बनाने के लिए है:
कोड यह रहा। मुझे विशेष रूप से हैश कुंजी के माध्यम से all?
के साथ दो बार फिर से प्रयास करने का आनंद लेने का आनंद नहीं मिलता है, यह निर्धारित करने के लिए कि मुझे आईडी के बाहर ले जाने की आवश्यकता है या नहीं।
बेशक, मैं भी इस कोड को बेहतर बनाने के लिए किसी भी अन्य सुझावों को स्वीकार करेंगे :)
यहाँ तक कि "बतख टाइपिंग" से पहले कभी नहीं सुना: आप कुछ इस तरह की कोशिश कर सकते। आप उस पर कहाँ आए थे? –
@ ब्रायन, http://en.wikipedia.org/wiki/Duck_typing –