第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

鴨子打字是什么?

鴨子打字是什么?

鴨子打字是什么?我碰到了這個(gè)詞鴨型在網(wǎng)上閱讀隨機(jī)話題時(shí),并沒有完全理解它。什么是“鴨子打字”?
查看完整描述

3 回答

?
慕尼黑8549860

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊

鴨型意味著一個(gè)操作未正式指明它的操作數(shù)必須滿足的要求,但是試試看得到了什么。

與其他人所說的不同,這不一定與動(dòng)態(tài)語言或繼承問題有關(guān)。

示例任務(wù):調(diào)用某種方法Quack在物體上。

使用鴨子類型,一個(gè)函數(shù)f執(zhí)行此任務(wù)必須事先指定其參數(shù)必須支持某些方法。Quack..一個(gè)常見的方法是使用接口。

interface IQuack { 
    void Quack();
}

void f(IQuack x) { 
    x.Quack(); 
}

呼叫f(42)失敗了,但是f(donald)工作時(shí)間只要donaldIQuack-亞型。

另一種方法是結(jié)構(gòu)分型-但同樣,方法Quack()正式指定任何不能證明這一點(diǎn)的東西。quack提前將導(dǎo)致編譯器失敗。

def f(x : { def Quack() : Unit }) = x.Quack()

我們甚至可以寫

f :: Quackable a => a -> IO ()
f = quack

在哈斯克爾Quackable類型化確保了我們方法的存在。



所以怎么鴨型改變這個(gè)?


嗯,就像我說過的,鴨子打字系統(tǒng)沒有指定要求,但是只要試一試就行了.

因此,Python的動(dòng)態(tài)類型系統(tǒng)總是使用鴨子類型:

def f(x):
    x.Quack()

如果f獲取一個(gè)x支持Quack(),一切都很好,如果不是,它將在運(yùn)行時(shí)崩潰。

但是鴨子類型并不意味著動(dòng)態(tài)輸入-事實(shí)上,有一種非常流行但完全靜態(tài)的鴨子類型方法,它也沒有給出任何要求:

template <typename T>
void f(T x) { x.Quack(); }

這個(gè)函數(shù)沒有以任何方式表明它想要一些xQuack,所以它只是嘗試編譯時(shí)如果一切順利的話,一切都會(huì)好起來的。


查看完整回答
反對(duì) 回復(fù) 2019-07-11
?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊

簡(jiǎn)單解釋(沒有代碼)

對(duì)這個(gè)問題的語義的討論是相當(dāng)細(xì)微的(而且非常學(xué)術(shù)性的),但是這里有一個(gè)總的想法:

鴨型

(“如果它走路像鴨子,叫起來像鴨子,那它就是鴨子。”)-是!但這是什么意思?!最好的例子是:

示例:動(dòng)態(tài)類型語言

想象一下我有一根魔杖。它有特殊的力量。如果我揮動(dòng)魔杖說“開車!”去一輛車,好吧,它會(huì)開車的!

它對(duì)其他事情有用嗎?不確定:所以我在卡車上試了一下。哇-它也會(huì)開車!然后我在飛機(jī),火車和1伍茲(他們是一種高爾夫球俱樂部,人們用來“駕駛”高爾夫球)。他們都開車!

但是它能用在一個(gè)茶杯上嗎?錯(cuò)誤:KAAAA-BOOOOOOM!結(jié)果不太好。=>茶杯不能開!?。??

這基本上就是鴨子輸入的概念。是個(gè)試著先買然后再買系統(tǒng)。如果成功了,一切都會(huì)好起來的。但如果失敗了,它會(huì)在你臉上炸開的。

換句話說,我們感興趣的是能行,而不是和物體是什么.

示例:靜態(tài)類型化語言

如果我們關(guān)心的是目標(biāo)到底是什么,然后我們的魔術(shù)將只適用于預(yù)置,授權(quán)類型-在這種情況下,汽車,但是將在其他可以驅(qū)動(dòng)的對(duì)象上失敗。:卡車,輕便摩托車,突克-土豆泥等,因?yàn)槲覀兊哪д绕诖荒茉诳ㄜ嚿鲜褂谩?/trans>只在汽車上工作.

換句話說,在這個(gè)場(chǎng)景中,魔杖非常仔細(xì)地查看對(duì)象(這是一輛車嗎?)而不是對(duì)象能行(例如汽車、卡車等是否能駕駛)。

你能得到一輛卡車的唯一方法就是你能得到魔法棒來期待這兩輛卡車。CARS(也許是通過“實(shí)現(xiàn)公共接口”來實(shí)現(xiàn)的)。如果你不知道這意味著什么,那就暫時(shí)忽略它。

摘要:關(guān)鍵退出

鴨子類型中最重要的是對(duì)象實(shí)際上可以做,而不是對(duì)象.


查看完整回答
反對(duì) 回復(fù) 2019-07-11
  • 3 回答
  • 0 關(guān)注
  • 823 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)