Duck typing एक सिद्धान्त हो जहाँ कुनै पनि वस्तुको उपयुक्तता यसले कुन-कुन methods लाई respond गर्छ भन्ने कुरामा निर्धारण हुन्छ, यसको class वा type मा होइन — "यदि यो बत्तखको जस्तै हिँडिरहेको छ र बत्तखको जस्तै आवाज निकालिरहेको छ, त्यसो हो बत्तख।" Ruby मा, तपाईलाई यो महत्त्वपूर्ण छ कि कुनै पनि वस्तु केही गर्न सक्छ (method छ), यसको type के हो भन्ने कुरा होइन। यसले inheritance वा interfaces बिना नै flexible, polymorphic code लेख्न सक्षम बनाउँछ।
The principle: behavior over type
()
duck.quack
=
=
make_it_quack(.new)
make_it_quack(.new)
