Je continue à voir la phrase "duck typing" galvaudé, et a même couru à travers un exemple de code ou deux. Je suis trop paresseux occupé à faire mes propres recherches, quelqu'un peut me dire, brièvement:
- la différence entre un canard de type " et un old-skool 'variante de type', et
- fournir un exemple d'endroit où je pourrais préférer duck-typing sur la variante de la dactylographie, et
- donner un exemple de quelque chose que je voudrais avoir à utiliser de canard à taper pour l'accomplir?
Je ne veux pas paraître volaille en vient à douter de la puissance de ce "nouveau" construire, et je ne suis pas esquive la question en refusant de faire de la recherche, mais je suis quacking à tous, le flocage hype j'ai été voir à ce sujet dernièrement. Il ressemble à aucune frappe (aka typage dynamique) pour moi, donc je ne vois pas les avantages tout de suite.
ADDENDUM: Merci pour les exemples jusqu'à présent. Il me semble qu'en utilisant quelque chose comme "O->(Bla)" est équivalent à faire une réflexion de recherche (qui n'est probablement pas bon marché), et/ou est environ la même chose que de dire O est IBlah) dont le compilateur pourrait être en mesure de vérifier pour vous, mais ce dernier a l'avantage de distinguer mon IBlah interface de votre IBlah de l'interface tandis que les deux autres ne le font pas. Accordé, le fait d'avoir beaucoup de petites interfaces flottant autour pour chaque méthode serait gênant, mais là encore peut donc vérifier pour un grand nombre de méthodes individuelles...
...encore une fois, je suis tout simplement pas l'obtenir. Est-il un formidable gain de temps, ou de la même vieille chose dans un tout nouveau sac? Où en est l'exemple qui nécessite duck-typing?