2009-12-04 48 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等等,具體取決於 你需要用什麼子類的鴨子般的行爲來玩你的 語言遊戲。