2009-12-04 51 views
10

在“鸭子打字”这个名字背后有一个故事,我听说过“如果它看起来像一只鸭子,听起来像一只鸭子,我们称之为鸭子”(或类似的东西),但为什么一只鸭子?为什么不``如果它看起来像一个_并且听起来像一个_,我们就把它称为_''。“鸭子打字”的词源?

这听起来像是飞行马戏团的素描,但我不记得它。这个名字背后有一个故事吗?

+1

+1“鸭” :) – 2009-12-04 07:05:58

+4

我投票,因为这个问题不是一个实际的编程问题,关闭这一问题作为题外话,作为布局[帮助/关于话题] 。 – 2015-03-06 17:15:17

回答

8

鸭子打字是从更古老的“步行像鸭子”借来的短语。后者比它描述的编程思想长得多。见answerbag.com

3

这是不是一个真正的编程问题,但我的猜测:鸭子走路滑稽和他们嘎嘎。这足够有趣,可以将它变成一种调整音调。 :-)

0

不,比喻是,如果一个变量看起来像一个整数(例如),并作为一个整数,它必须是一个整数(类型)。

鸭子打字意味着'没有明确的类型的预先声明'。

+1

我明白了,但我想知道为什么鸭子,所有可能的选择 – 2009-12-04 04:50:40

+0

好,因为每个人都同意,我们知道关于鸭子的表达,它已经有一段时间了。可能,鸭子的特征很容易与其他水禽区分开来。丑小鸭的故事必须是证明规则的例外。 – pavium 2009-12-04 04:55:02

3

引用维基百科的article on Duck Typing

概念的名称是指鸭子测试,归因于James Whitcomb Riley,可以作如下表述:“当我看到一个 鸟走起来像鸭子,游泳就像一只鸭子,像一只鸭子一样嘎嘎叫,我把那只鸭子叫做鸭子。“

...并在同一页面...

Alex Martelli在消息 到comp.lang.python新闻组提出的早期(2000年)使用的术语。他还强调 误解字面鸭子测试,这可能表明该 项已在使用的:

“换句话说,不检查是否-鸭子:检查是否 QUACKS-像鸭子,WALKS-like-duck等等,具体取决于 你需要用什么子类的鸭子般的行为来玩你的 语言游戏。