“鸭子打字”这个名字背后有什么故事吗,我听说过“如果它看起来像鸭子,听起来像鸭子,我们就叫它鸭子”(或类似的东西),但为什么鸭?为什么不“如果它看起来像_,听起来像_,我们就叫它_”。
这听起来像一个飞行马戏团的草图,但我不记得了。这个名字背后有故事吗?
“鸭子打字”这个名字背后有什么故事吗,我听说过“如果它看起来像鸭子,听起来像鸭子,我们就叫它鸭子”(或类似的东西),但为什么鸭?为什么不“如果它看起来像_,听起来像_,我们就叫它_”。
这听起来像一个飞行马戏团的草图,但我不记得了。这个名字背后有故事吗?
鸭子打字是从更古老的“像鸭子一样走路”借来的短语。后者的存在时间远远超过它所描述的编程思想。请参阅answerbag.com
这不是一个真正的编程问题,但我的猜测是:鸭子走路很有趣,他们嘎嘎叫。这很有趣,可以把它变成一个比喻。:-)
引用维基百科关于 Duck Typing 的文章:
这个概念的名称是指鸭子测试,归因于詹姆斯·惠特科姆·赖利( James Whitcomb Riley),它可以表述如下:“当我看到一只像鸭子一样走路、像鸭子一样游泳、像鸭子一样嘎嘎叫的鸟时,我称那只鸟鸭子。”
...并从同一页面...
Alex Martelli早在 2000 年就在给 comp.lang.python 新闻组的消息中使用了该术语。他还强调了对字面鸭测试的误解,这可能表明该术语已经在使用:
“换句话说,不要检查它是否是鸭子:检查它是否像鸭子一样呱呱叫,像鸭子一样走路,等等,这取决于你需要的鸭子样行为的子集玩你的语言游戏。”
不,类比是如果一个变量看起来像一个整数(例如),并且作为一个整数,它必须是一个整数(类型)。
鸭子类型意味着“没有明确的类型预先声明”。