Качина типізація - це

Латентна. неявна або качина типізація (калька з англ. 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) в програмуванні можливість компілятора ... ... Вікіпедія

Залежний тип - типізації Тіпобезопасность Висновок типів Динамічна типізація Статична типізація Сувора типізація М'яка типізація Зовсім типи Качина типізація залежний тип, в інформатиці та логіці тип, який залежить від значення. Зовсім ... ... Вікіпедія

Тип даних - (зустрічається також термін вид даних) фундаментальне поняття теорії програмування. Тип даних визначає безліч значень, набір операцій, які можна застосовувати до таких значень і, можливо, спосіб реалізації зберігання значень і ... ... Вікіпедія

Качки в культурі - Цей термін має також інші значення див. Качка (значення). Качки в культурі Багато птахів, особливо гуси і лебеді, залишили величезний слід в культурі самих різних народів і епох, включаючи і міфологічні образи. У грецькій міфології ... ... Вікіпедія