Duck typing est un principe où l'adéquation d'un objet est déterminée par les méthodes auxquelles il répond, et non par sa classe ou son type — « si ça marche comme un canard et ça crie comme un canard, c'est un canard ». En Ruby, vous vous souciez de ce qu'un objet peut faire (il a la méthode), pas quel type il est. Cela permet un code flexible et polymorphe sans héritage ni interfaces.
Le principe : le comportement plutôt que le type
()
duck.quack
=
=
make_it_quack(.new)
make_it_quack(.new)
