www.wikidata.uk-ua.nina.az
Neyavna tipizaciya latentna tipizaciya abo kachina tipizaciya kalka z angl Duck typing riznovid dinamichnoyi tipizaciyi zastosovuvanoyi v deyakih movah programuvannya koli mezhi vikoristannya ob yekta viznachayutsya jogo potochnim naborom metodiv i vlastivostej na protivagu uspadkuvannyu vid pevnogo klasu Tobto vvazhayetsya sho ob yekt realizuye interfejs yaksho vin mistit vsi metodi cogo interfejsu nezalezhno vid zv yazkiv v iyerarhiyi nasliduvannya ta prinalezhnosti do yakogos konkretnogo klasu Nazva termina pohodit vid anglijskogo duck test kachinij test yakij v originali zvuchit tak If it looks like a duck swims like a duck and quacks like a duck then it probably is a duck Yaksho vono viglyadaye yak kachka plavaye yak kachka i kahkaye yak kachka to ce napevno i ye kachka Kachina tipizaciya rozv yazuye taki problemi iyerarhichnoyi tipizaciyi yak nemozhlivist yavno vkazati shlyahom nasliduvannya na sumisnist interfejsu z usima spravzhnimi ta majbutnimi interfejsami z yakimi vin idejno sumisnij eksponencialne zbilshennya chisla zv yazkiv v iyerarhiyi tipiv pri hocha b chastkovij sprobi ce zrobiti Inshim blizkim pidhodom ye strukturni pidtipi v OCaml de tipi ob yektiv sumisni yaksho sumisni signaturi yihnih metodiv nezalezhno vid ogoloshenogo nasliduvannya prichomu vse ce pereviryayetsya pid chas kompilyaciyi programi Zmist 1 Prikladi koncepciyi 1 1 Na Python 2 U movah zi statichnoyu tipizaciyeyu 3 Vinoski 4 PosilannyaPrikladi koncepciyi RedaguvatiRozglyanemo takij psevdokod movi z kachinoyu tipizaciyeyu function calculate a b c gt return a b c example1 calculate 1 2 3 example2 calculate 1 2 3 4 5 6 2 example3 calculate apples and oranges 3 print to string example1 print to string example2 print to string example3 U comu prikladi kozhnogo razu viklikayetsya funkciya calculate z ob yektami bez sporidnenoyi spadkovosti chisla spiski ryadki Oskilki ob yekti pidtrimuyut metodi ta funkciya bude vikonana Yaksho kod primirom vikonuvatimetsya u Ruby abo Python rezultatom bude 9 1 2 3 4 5 6 1 2 3 4 5 6 apples and oranges apples and oranges apples and oranges Takim chinom kachina tipizaciya dozvolyaye polimorfizm bez uspadkuvannya Yedinim obmezhennyam na funkciyu calculate ye zdatnist yiyi argumentiv zastosovuvati metodi ta Na Python Redaguvati Perevirka na kachku mozhe buti ilyustrovana takimi kodami V comu prikladi Sparrow ye kachkoyu Priklad bez uspadkuvannyaclass Duck def fly self print Kachka litaye class Sparrow def fly self print Gorobec litaye class Whale def swim self print Kit plavaye a b c Duck Sparrow Whale for animal in a b c animal fly Rezultat Kachka litaye Gorobec litaye AttributeError Whale object has no attribute fly V comu prikladi rozglyadayetsya funkciya in the forest u lisi zgidno z yakim ob yekti Human i Dog ye kachkami Priklad z uspadkuvannyamclass Animal object def init self name self name name def speak self pass class Duck Animal def speak self return self quack def quack self return Krya def feathers self return maye bile ta sire pir ya class Dog Animal def speak self return self woof def woof self return Gav def feathers self return mozhe znajti pir ya u lisi class Human Animal def speak self return Privit def feathers self return ne maye pir ya def in the forest duck print duck name kazhe duck speak i duck feathers def game animal a Duck Donald animal b Dog Sirko animal c Human Ivan for animal in animal a animal b animal c in the forest animal game Rezultat Donald kazhe Kah i maye bile ta sire pir ya Ivan kazhe Privit i ne maye pir ya Sirko kazhe Gav i mozhe znajti pir ya u lisi U movah zi statichnoyu tipizaciyeyu RedaguvatiInodi movi zi statichnoyu tipizaciyeyu taki yak Boo chi versiya 4 vipusku C mayut dodatkovu anotaciyu tipiv 1 2 kotra instruktuye kompilyator rozmishuvati perevirku tipiv i klasiv na stadiyi vikonannya a ne pid chas kompilyaciyi i vklyuchati kod dlya perevirki tipiv u vidkompilovanij vivid Inshi movi zi statichnoyu tipizaciyeyu napriklad F pidtrimuyut statichnu kachinu tipizaciyu koli tipi pereviryayutsya na nayavnist pevnih signatur metodiv pid chas kompilyaciyi Vinoski Redaguvati Boo Duck Typing Arhiv originalu za 6 zhovtnya 2008 Procitovano 9 sichnya 2014 Anders Hejlsberg Introduces C 4 0 at PDC 2008 Arhiv originalu za 16 Grudnya 2009 Procitovano 9 Sichnya 2014 Posilannya Redaguvati Otrimano z https uk wikipedia org w index php title Kachina tipizaciya amp oldid 38797285