Латентна. неявна або качина типізація (калька з англ. Duck typing) - вид динамічної типізації, яка застосовується в деяких мовах програмування (Perl. Smalltalk. Objective-C. Python. Ruby. Groovy. ColdFusion. Boo. Java. C #), коли кордони використання об'єкта визначаються його поточним набором методів і властивостей. на противагу спадкоємства від певного класу. Тобто вважається, що об'єкт реалізує інтерфейс, якщо він містить всі методи цього інтерфейсу, незалежно від зв'язків в ієрархії успадкування та приналежності до якого-небудь конкретного класу.
Назва терміна походить від англійського «duck test» ( «тест на качку»), який в оригіналі звучить як:
«If it looks like a duck, swims like a duck and quacks like a duck, then it probably is a duck». ( «Якщо це виглядає як качка, плаває як качка і крякає як качка, то, ймовірно, це качка».).
Качина типізація вирішує такі проблеми ієрархічної типізації, як:
- неможливість явно вказати (шляхом успадкування) на сумісність інтерфейсу з усіма справжніми і майбутніми інтерфейсами, з якими він ідейно сумісний;
- експоненціальне збільшення числа зв'язків в ієрархії типів при хоча б часткової спробі це зробити.
Іншим близьким підходом є структурні підтипи в OCaml. де типи об'єктів сумісні, якщо сумісні сигнатури їхніх методів, незалежно від оголошеного спадкування, причому все це перевіряється під час компіляції програми.
У статті є список джерел або зовнішніх посилань, але джерела окремих тверджень залишаються неясними через відсутність виносок.
Ви можете поліпшити статтю, внісши більш точні вказівки на джерела.
Дивитися що таке "Качине типізація" в інших словниках:
Типізації - Тип даних фундаментальне поняття теорії програмування. Тип даних визначає безліч значень, набір операцій, які можна застосовувати до таких значень, і, можливо, спосіб реалізації зберігання значень і виконання операцій. Будь-які ... ... Вікіпедія
Сувора типізація - типізації Тіпобезопасность Висновок типів Динамічна типізація Статична типізація сувора типізація М'яка типізація Зовсім типи Качина типізація сувора типізація один з варіантів політики роботи з типами даних, яка ... ... Вікіпедія
Висновок типів - типізації Тіпобезопасность Висновок типів Динамічна типізація Статична типізація Сувора типізація М'яка типізація Зовсім типи Качина типізація висновок типу (англ. Type inference) в програмуванні можливість компілятора ... ... Вікіпедія
Залежний тип - типізації Тіпобезопасность Висновок типів Динамічна типізація Статична типізація Сувора типізація М'яка типізація Зовсім типи Качина типізація залежний тип, в інформатиці та логіці тип, який залежить від значення. Зовсім ... ... Вікіпедія
Тип даних - (зустрічається також термін вид даних) фундаментальне поняття теорії програмування. Тип даних визначає безліч значень, набір операцій, які можна застосовувати до таких значень і, можливо, спосіб реалізації зберігання значень і ... ... Вікіпедія
Качки в культурі - Цей термін має також інші значення див. Качка (значення). Качки в культурі Багато птахів, особливо гуси і лебеді, залишили величезний слід в культурі самих різних народів і епох, включаючи і міфологічні образи. У грецькій міфології ... ... Вікіпедія