CINXE.COM

Качина типізація — Вікіпедія

<!DOCTYPE html> <html class="client-nojs" lang="uk" dir="ltr"> <head> <meta charset="UTF-8"> <title>Качина типізація — Вікіпедія</title> <script>(function(){var className="client-js";var cookie=document.cookie.match(/(?:^|; )ukwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":[",\t."," \t,"],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],"wgRequestId":"53cd9038-b242-4665-87a2-8008417a36c6","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Качина_типізація","wgTitle":"Качина типізація","wgCurRevisionId":38797285,"wgRevisionId":38797285, "wgArticleId":1636569,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Сторінки, які містять помилки підсвічення синтаксису","Сторінки з використанням розширення JsonConfig","Статті з прикладами коду мовою Python","Об'єктно-орієнтоване програмування","Теорія типів","Птахи в культурі"],"wgPageViewLanguage":"uk","wgPageContentLanguage":"uk","wgPageContentModel":"wikitext","wgRelevantPageName":"Качина_типізація","wgRelevantArticleId":1636569,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":true,"wgFlaggedRevsParams":{"tags":{"accuracy":{"levels":3}}},"wgStableRevisionId":35016146,"wgMediaViewerOnClick":true, "wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"uk","pageLanguageDir":"ltr","pageVariantFallbacks":"uk"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":8000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":true,"wgVector2022LanguageInHeader":false,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q374282","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready", "ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.pygments":"ready","ext.cite.styles":"ready","skins.vector.styles.legacy":"ready","ext.flaggedRevs.basic":"ready","mediawiki.codex.messagebox.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","codex-search-styles":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.pygments.view","ext.cite.ux-enhancements","site","mediawiki.page.ready","mediawiki.toc","skins.vector.legacy.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.flaggedRevs.advanced","ext.gadget.CurIDLink","ext.gadget.collapserefs","ext.gadget.showContributorContent","ext.gadget.switcher","ext.gadget.edittop","ext.gadget.new-section","ext.gadget.newTopicOnTop","ext.gadget.MonobookToolbarStandard","ext.gadget.ProtectionIndicator","ext.gadget.Statistics","ext.gadget.interwiki-langlist","ext.urlShortener.toolbar","ext.centralauth.centralautologin", "ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.compactlinks","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=uk&amp;modules=codex-search-styles%7Cext.cite.styles%7Cext.flaggedRevs.basic%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cmediawiki.codex.messagebox.styles%7Cskins.vector.styles.legacy%7Cwikibase.client.init&amp;only=styles&amp;skin=vector"> <script async="" src="/w/load.php?lang=uk&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=uk&amp;modules=site.styles&amp;only=styles&amp;skin=vector"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Качина типізація — Вікіпедія"> <meta property="og:type" content="website"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//uk.m.wikipedia.org/wiki/%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F"> <link rel="alternate" type="application/x-wiki" title="Редагувати" href="/w/index.php?title=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Вікіпедія (uk)"> <link rel="EditURI" type="application/rsd+xml" href="//uk.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://uk.wikipedia.org/wiki/%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.uk"> <link rel="alternate" type="application/atom+xml" title="Вікіпедія — Atom-стрічка" href="/w/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:%D0%9D%D0%BE%D0%B2%D1%96_%D1%80%D0%B5%D0%B4%D0%B0%D0%B3%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F&amp;feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin-vector-legacy mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Качина_типізація rootpage-Качина_типізація skin-vector action-view"><div id="mw-page-base" class="noprint"></div> <div id="mw-head-base" class="noprint"></div> <div id="content" class="mw-body" role="main"> <a id="top"></a> <div id="siteNotice"><!-- CentralNotice --></div> <div class="mw-indicators"> <div id="mw-indicator-indicator-fr-review-status" class="mw-indicator"><indicator name="fr-review-status" class="mw-fr-review-status-indicator" id="mw-fr-revision-toggle"><span class="cdx-fr-css-icon-review--status--pending"></span><b>Очікує на перевірку</b></indicator></div> </div> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Качина типізація</span></h1> <div id="bodyContent" class="vector-body"> <div id="siteSub" class="noprint">Матеріал з Вікіпедії — вільної енциклопедії.</div> <div id="contentSub"><div id="mw-content-subtitle"><div id="mw-fr-revision-messages"><div id="mw-fr-revision-details" class="mw-fr-revision-details-dialog" style="display:none;"><div tabindex="0"></div><div class="cdx-dialog cdx-dialog--horizontal-actions"><header class="cdx-dialog__header cdx-dialog__header--default"><div class="cdx-dialog__header__title-group"><h2 class="cdx-dialog__header__title">Статус версії сторінки</h2><p class="cdx-dialog__header__subtitle">На цій сторінці показано неперевірені зміни</p></div><button class="cdx-button cdx-button--action-default cdx-button--weight-quiet&#10;&#9;&#9;&#9;&#9;&#9;&#9;&#9;cdx-button--size-medium cdx-button--icon-only cdx-dialog__header__close-button" aria-label="Закрити" onclick="document.getElementById(&quot;mw-fr-revision-details&quot;).style.display = &quot;none&quot;;" type="submit"><span class="cdx-icon cdx-icon--medium&#10;&#9;&#9;&#9;&#9;&#9;&#9;&#9;cdx-fr-css-icon--close"></span></button></header><div class="cdx-dialog__body"><a class="external text" href="https://uk.wikipedia.org/w/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:Badtitle/Message&amp;oldid=35016146&amp;diff=cur">1 зміна</a> у цій версії <a href="/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%BF%D0%B5%D0%B4%D1%96%D1%8F:%D0%9F%D0%B0%D1%82%D1%80%D1%83%D0%BB%D1%8E%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F" title="Вікіпедія:Патрулювання">очікує на перевірку</a>. <a class="external text" href="https://uk.wikipedia.org/w/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:Badtitle/Message&amp;stable=1">Стабільну версію</a> було <a class="external text" href="https://uk.wikipedia.org/w/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:%D0%96%D1%83%D1%80%D0%BD%D0%B0%D0%BB%D0%B8&amp;type=review&amp;page=%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:Badtitle/Message">перевірено</a> <i>28 березня 2022</i>.</div></div><div tabindex="0"></div></div></div></div></div> <div id="contentSub2"></div> <div id="jump-to-nav"></div> <a class="mw-jump-link" href="#mw-head">Перейти до навігації</a> <a class="mw-jump-link" href="#searchInput">Перейти до пошуку</a> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="uk" dir="ltr"><p><b>Неявна типізація</b>, <b>латентна типізація</b> або <b>качина типізація</b> (калька з <a href="/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D1%96%D0%B9%D1%81%D1%8C%D0%BA%D0%B0_%D0%BC%D0%BE%D0%B2%D0%B0" title="Англійська мова">англ.</a> <i lang="en">Duck typing</i>)&#160;— різновид <a href="/wiki/%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D1%96%D1%87%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F" class="mw-redirect" title="Динамічна типізація">динамічної типізації</a>, застосовуваної в деяких <a href="/wiki/%D0%9C%D0%BE%D0%B2%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F" title="Мова програмування">мовах програмування</a>, коли межі використання об'єкта визначаються його поточним набором методів і властивостей, на противагу <a href="/wiki/%D0%A3%D1%81%D0%BF%D0%B0%D0%B4%D0%BA%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)" class="mw-redirect" title="Успадкування (програмування)">успадкуванню</a> від певного <a href="/wiki/%D0%9A%D0%BB%D0%B0%D1%81_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)" title="Клас (програмування)">класу</a>. Тобто вважається, що об'єкт реалізує <a href="/wiki/%D0%86%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)" class="mw-redirect" title="Інтерфейс (програмування)">інтерфейс</a>, якщо він містить всі методи цього інтерфейсу, незалежно від зв'язків в ієрархії наслідування та приналежності до якогось конкретного класу. </p><p>Назва терміна походить від англійського «duck test» (<a href="/wiki/%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B8%D0%B9_%D1%82%D0%B5%D1%81%D1%82" title="Качиний тест">«качиний тест»</a>), який в оригіналі звучить так: </p> <dl><dd>«If it looks like a duck, swims like a duck and quacks like a duck, then it probably is a duck».</dd> <dd>(«Якщо воно виглядає як качка, плаває як качка і кахкає як качка, то це напевно і є качка»).</dd></dl> <p>Качина типізація розв'язує такі проблеми ієрархічної типізації як: </p> <ul><li>неможливість явно вказати (шляхом наслідування) на сумісність інтерфейсу з усіма справжніми та майбутніми інтерфейсами, з якими він ідейно сумісний;</li> <li>експоненціальне збільшення числа зв'язків в ієрархії типів при хоча б частковій спробі це зробити.</li></ul> <p>Іншим близьким підходом є структурні підтипи в <a href="/wiki/OCaml" class="mw-redirect" title="OCaml">OCaml</a>, де типи об'єктів сумісні, якщо сумісні сигнатури їхніх методів, незалежно від оголошеного наслідування, причому все це перевіряється під час <a href="/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D1%96%D0%BB%D1%8F%D1%86%D1%96%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B8" class="mw-redirect" title="Компіляція програми">компіляції програми</a>. </p> <div id="toc" class="toc" role="navigation" aria-labelledby="mw-toc-heading"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" /><div class="toctitle" lang="uk" dir="ltr"><h2 id="mw-toc-heading">Зміст</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div> <ul> <li class="toclevel-1 tocsection-1"><a href="#Приклади_концепції"><span class="tocnumber">1</span> <span class="toctext">Приклади концепції</span></a> <ul> <li class="toclevel-2 tocsection-2"><a href="#На_Python"><span class="tocnumber">1.1</span> <span class="toctext">На Python</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-3"><a href="#У_мовах_зі_статичною_типізацією"><span class="tocnumber">2</span> <span class="toctext">У мовах зі статичною типізацією</span></a></li> <li class="toclevel-1 tocsection-4"><a href="#Виноски"><span class="tocnumber">3</span> <span class="toctext">Виноски</span></a></li> <li class="toclevel-1 tocsection-5"><a href="#Посилання"><span class="tocnumber">4</span> <span class="toctext">Посилання</span></a></li> </ul> </div> <div class="mw-heading mw-heading2"><h2 id="Приклади_концепції"><span id=".D0.9F.D1.80.D0.B8.D0.BA.D0.BB.D0.B0.D0.B4.D0.B8_.D0.BA.D0.BE.D0.BD.D1.86.D0.B5.D0.BF.D1.86.D1.96.D1.97"></span>Приклади концепції</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;veaction=edit&amp;section=1" title="Редагувати розділ: Приклади концепції" class="mw-editsection-visualeditor"><span>ред.</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;action=edit&amp;section=1" title="Редагувати вихідний код розділу: Приклади концепції"><span>ред. код</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Розглянемо такий псевдокод мови з качиною типізацією: </p> <pre><b>function</b> calculate(a, b, c) =&gt; <b>return</b> (a+b)*c example1 = calculate (1, 2, 3) example2 = calculate ([1, 2, 3], [4, 5, 6], 2) example3 = calculate ('apples ', 'and oranges, ', 3) <b>print</b> <b>to_string</b> example1 <b>print</b> <b>to_string</b> example2 <b>print</b> <b>to_string</b> example3 </pre> <p>У цьому прикладі кожного разу викликається функція <code>calculate</code> з об'єктами без спорідненої спадковості&#160;— числа, списки, рядки. Оскільки об'єкти підтримують методи «+» та «*», функція буде виконана. Якщо код, приміром, виконуватиметься у <a href="/wiki/Ruby" title="Ruby">Ruby</a> або <a href="/wiki/Python" title="Python">Python</a>, результатом буде </p> <pre>9 [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6] apples and oranges, apples and oranges, apples and oranges, </pre> <p>Таким чином, качина типізація дозволяє <a href="/wiki/%D0%9F%D0%BE%D0%BB%D1%96%D0%BC%D0%BE%D1%80%D1%84%D1%96%D0%B7%D0%BC_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)" title="Поліморфізм (програмування)">поліморфізм</a> без <a href="/wiki/%D0%A3%D1%81%D0%BF%D0%B0%D0%B4%D0%BA%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)" class="mw-redirect" title="Успадкування (програмування)">успадкування</a>. Єдиним обмеженням на функцію <code>calculate</code> є здатність її аргументів застосовувати методи «+» та «*». </p> <div class="mw-heading mw-heading3"><h3 id="На_Python"><span id=".D0.9D.D0.B0_Python"></span>На Python</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;veaction=edit&amp;section=2" title="Редагувати розділ: На Python" class="mw-editsection-visualeditor"><span>ред.</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;action=edit&amp;section=2" title="Редагувати вихідний код розділу: На Python"><span>ред. код</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Перевірка на качку може бути ілюстрована такими кодами. В цьому прикладі <code>Sparrow</code> є качкою. </p> <style data-mw-deduplicate="TemplateStyles:r43816121">.mw-parser-output .cot-header-mainspace{background:#F0F2F5;color:inherit}.mw-parser-output .cot-header-other{background:#CCFFCC;color:inherit}@media screen{html.skin-theme-clientpref-night .mw-parser-output .cot-header-mainspace{background:#14181F;color:inherit}html.skin-theme-clientpref-night .mw-parser-output .cot-header-other{background:#003500;color:inherit}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cot-header-mainspace{background:#14181F;color:inherit}html.skin-theme-clientpref-os .mw-parser-output .cot-header-other{background:#003500;color:inherit}}</style> <div style="margin-left:0px"> <table class="collapsible collapsed" style="color:inherit; background: transparent; text-align: left; border: 1px solid silver; margin: 0.2em auto auto; width:100%; clear: both; padding: 1px;"> <tbody><tr> <th class="cot-header-mainspace" style="; font-size:87%; padding:0.2em 0.3em; text-align:center;"><span style="font-size:115%">Приклад без успадкування </span> </th></tr> <tr> <td style="color:inherit; border: solid 1px silver; padding: 8px; background: var(--background-color-base, #fff);"> <div class="mw-highlight mw-highlight-lang-python mw-content-ltr" dir="ltr"><pre><span></span><span class="k">class</span> <span class="nc">Duck</span><span class="p">:</span> <span class="k">def</span> <span class="nf">fly</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Качка літає&quot;</span><span class="p">)</span> <span class="k">class</span> <span class="nc">Sparrow</span><span class="p">:</span> <span class="k">def</span> <span class="nf">fly</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Горобець літає&quot;</span><span class="p">)</span> <span class="k">class</span> <span class="nc">Whale</span><span class="p">:</span> <span class="k">def</span> <span class="nf">swim</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Кит плаває&quot;</span><span class="p">)</span> <span class="n">a</span><span class="p">,</span> <span class="n">b</span> <span class="p">,</span><span class="n">c</span> <span class="o">=</span> <span class="n">Duck</span><span class="p">(),</span> <span class="n">Sparrow</span><span class="p">(),</span> <span class="n">Whale</span><span class="p">()</span> <span class="k">for</span> <span class="n">animal</span> <span class="ow">in</span> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">:</span> <span class="n">animal</span><span class="o">.</span><span class="n">fly</span><span class="p">()</span> </pre></div> <p>Результат: </p> <div class="mw-highlight mw-highlight-lang-python mw-content-ltr" dir="ltr"><pre><span></span><span class="n">Качка</span> <span class="n">літає</span> <span class="n">Горобець</span> <span class="n">літає</span> <span class="ne">AttributeError</span><span class="p">:</span> <span class="s1">&#39;Whale&#39;</span> <span class="nb">object</span> <span class="n">has</span> <span class="n">no</span> <span class="n">attribute</span> <span class="s1">&#39;fly&#39;</span> </pre></div> </td></tr></tbody></table></div> <p>В цьому прикладі розглядається функція <code>in_the_forest</code> (у_лісі), згідно з яким об'єкти <code>Human</code> і <code>Dog</code> є качками: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r43816121"> </p> <div style="margin-left:0px"> <table class="collapsible collapsed" style="color:inherit; background: transparent; text-align: left; border: 1px solid silver; margin: 0.2em auto auto; width:100%; clear: both; padding: 1px;"> <tbody><tr> <th class="cot-header-mainspace" style="; font-size:87%; padding:0.2em 0.3em; text-align:center;"><span style="font-size:115%">Приклад з успадкуванням </span> </th></tr> <tr> <td style="color:inherit; border: solid 1px silver; padding: 8px; background: var(--background-color-base, #fff);"> <div class="mw-highlight mw-highlight-lang-python mw-content-ltr" dir="ltr"><pre><span></span><span class="k">class</span> <span class="nc">Animal</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span> <span class="k">def</span> <span class="nf">speak</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="k">pass</span> <span class="k">class</span> <span class="nc">Duck</span><span class="p">(</span><span class="n">Animal</span><span class="p">):</span> <span class="k">def</span> <span class="nf">speak</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">quack</span><span class="p">()</span> <span class="k">def</span> <span class="nf">quack</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="k">return</span> <span class="s2">&quot;Кря!&quot;</span> <span class="k">def</span> <span class="nf">feathers</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="k">return</span> <span class="s2">&quot;має біле та сіре пір&#39;я.&quot;</span> <span class="k">class</span> <span class="nc">Dog</span><span class="p">(</span><span class="n">Animal</span><span class="p">):</span> <span class="k">def</span> <span class="nf">speak</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">woof</span><span class="p">()</span> <span class="k">def</span> <span class="nf">woof</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="k">return</span> <span class="s2">&quot;Гав!&quot;</span> <span class="k">def</span> <span class="nf">feathers</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="k">return</span> <span class="s2">&quot;може знайти пір&#39;я у лісі.&quot;</span> <span class="k">class</span> <span class="nc">Human</span><span class="p">(</span><span class="n">Animal</span><span class="p">):</span> <span class="k">def</span> <span class="nf">speak</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="k">return</span> <span class="s2">&quot;Привіт!&quot;</span> <span class="k">def</span> <span class="nf">feathers</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="k">return</span> <span class="s2">&quot;не має пір&#39;я.&quot;</span> <span class="k">def</span> <span class="nf">in_the_forest</span><span class="p">(</span><span class="n">duck</span><span class="p">):</span> <span class="nb">print</span><span class="p">(</span><span class="n">duck</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">&quot; каже &quot;</span> <span class="o">+</span> <span class="n">duck</span><span class="o">.</span><span class="n">speak</span><span class="p">()</span> <span class="o">+</span> <span class="s2">&quot; і &quot;</span> <span class="o">+</span> <span class="n">duck</span><span class="o">.</span><span class="n">feathers</span><span class="p">())</span> <span class="k">def</span> <span class="nf">game</span><span class="p">():</span> <span class="n">animal_a</span> <span class="o">=</span> <span class="n">Duck</span><span class="p">(</span><span class="s2">&quot;Дональд&quot;</span><span class="p">)</span> <span class="n">animal_b</span> <span class="o">=</span> <span class="n">Dog</span><span class="p">(</span><span class="s2">&quot;Сірко&quot;</span><span class="p">)</span> <span class="n">animal_c</span> <span class="o">=</span> <span class="n">Human</span><span class="p">(</span><span class="s2">&quot;Іван&quot;</span><span class="p">)</span> <span class="k">for</span> <span class="n">animal</span> <span class="ow">in</span> <span class="n">animal_a</span><span class="p">,</span> <span class="n">animal_b</span><span class="p">,</span> <span class="n">animal_c</span><span class="p">:</span> <span class="n">in_the_forest</span><span class="p">(</span><span class="n">animal</span><span class="p">)</span> <span class="n">game</span><span class="p">()</span> </pre></div> <p>Результат: </p> <div class="mw-highlight mw-content-ltr" dir="ltr"><pre>Дональд каже Ках! і має біле та сіре пір'я. Іван каже Привіт! і не має пір'я. Сірко каже Гав! і може знайти пір'я у лісі.</pre></div> </td></tr></tbody></table></div> <div class="mw-heading mw-heading2"><h2 id="У_мовах_зі_статичною_типізацією"><span id=".D0.A3_.D0.BC.D0.BE.D0.B2.D0.B0.D1.85_.D0.B7.D1.96_.D1.81.D1.82.D0.B0.D1.82.D0.B8.D1.87.D0.BD.D0.BE.D1.8E_.D1.82.D0.B8.D0.BF.D1.96.D0.B7.D0.B0.D1.86.D1.96.D1.94.D1.8E"></span>У мовах зі статичною типізацією</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;veaction=edit&amp;section=3" title="Редагувати розділ: У мовах зі статичною типізацією" class="mw-editsection-visualeditor"><span>ред.</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;action=edit&amp;section=3" title="Редагувати вихідний код розділу: У мовах зі статичною типізацією"><span>ред. код</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Іноді мови зі статичною типізацією, такі як <a href="/wiki/Boo" title="Boo">Boo</a> чи версія 4 випуску <a href="/wiki/C-Sharp" class="mw-redirect" title="C-Sharp">C#</a> мають додаткову анотацію типів<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">&#91;</span>1<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup>, котра інструктує <a href="/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D1%96%D0%BB%D1%8F%D1%82%D0%BE%D1%80" title="Компілятор">компілятор</a> розміщувати перевірку типів і <a href="/wiki/%D0%9A%D0%BB%D0%B0%D1%81_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)" title="Клас (програмування)">класів</a> на стадії виконання, а не під час компіляції, і включати код для перевірки типів у відкомпільований вивід. </p><p>Інші мови зі статичною типізацією, наприклад <a href="/wiki/F_Sharp" title="F Sharp">F#</a>, підтримують статичну качину типізацію, коли типи перевіряються на наявність певних сигнатур методів під час компіляції. </p> <div class="mw-heading mw-heading2"><h2 id="Виноски"><span id=".D0.92.D0.B8.D0.BD.D0.BE.D1.81.D0.BA.D0.B8"></span>Виноски</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;veaction=edit&amp;section=4" title="Редагувати розділ: Виноски" class="mw-editsection-visualeditor"><span>ред.</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;action=edit&amp;section=4" title="Редагувати вихідний код розділу: Виноски"><span>ред. код</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r43816068">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist" style="list-style-type: decimal;"> <div class="mw-references-wrap"><ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r43245077">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ref-lang{font-size:85%;cursor:help;margin-left:0.2em;color:var(--color-subtle,#54595d)}.mw-parser-output .cs1-ref-lg{font-style:normal;cursor:help}.mw-parser-output .cs1-ref-lg-text{color:#252525;text-decoration:inherit;text-decoration-color:#252525}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}html.skin-theme-clientpref-night .mw-parser-output .cs1-ref-lg-text{color:#dadad6;text-decoration-color:#dadad6}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}html.skin-theme-clientpref-night .mw-parser-output .cs1-ref-lg-text{color:#dadad6;text-decoration-color:#dadad6}}</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20081006075246/http://boo.codehaus.org/Duck+Typing">Boo: Duck Typing</a>. Архів <a rel="nofollow" class="external text" href="http://boo.codehaus.org/Duck+Typing">оригіналу</a> за 6 жовтня 2008<span class="reference-accessdate">. Процитовано 9 січня 2014</span>.</cite></span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r43245077"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20091216125501/http://blogs.msdn.com/ericwhite/archive/2008/10/29/anders-hejlsberg-introduces-c-4-0-at-pdc-2008.aspx">Anders Hejlsberg Introduces C# 4.0 at PDC 2008</a>. Архів <a rel="nofollow" class="external text" href="http://blogs.msdn.com/ericwhite/archive/2008/10/29/anders-hejlsberg-introduces-c-4-0-at-pdc-2008.aspx">оригіналу</a> за 16 Грудня 2009<span class="reference-accessdate">. Процитовано 9 Січня 2014</span>.</cite></span> </li> </ol></div></div> <div class="mw-heading mw-heading2"><h2 id="Посилання"><span id=".D0.9F.D0.BE.D1.81.D0.B8.D0.BB.D0.B0.D0.BD.D0.BD.D1.8F"></span>Посилання</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;veaction=edit&amp;section=5" title="Редагувати розділ: Посилання" class="mw-editsection-visualeditor"><span>ред.</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;action=edit&amp;section=5" title="Редагувати вихідний код розділу: Посилання"><span>ред. код</span></a><span class="mw-editsection-bracket">]</span></span></div> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐f69cdc8f6‐7gxbk Cached time: 20241123144224 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.200 seconds Real time usage: 0.250 seconds Preprocessor visited node count: 379/1000000 Post‐expand include size: 3592/2097152 bytes Template argument size: 214/2097152 bytes Highest expansion depth: 8/100 Expensive parser function count: 4/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 17123/5000000 bytes Lua time usage: 0.138/10.000 seconds Lua memory usage: 17539230/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 230.239 1 -total 53.46% 123.086 1 Шаблон:Lang-en 35.38% 81.449 1 Шаблон:Reflist 30.57% 70.376 2 Шаблон:Cite_web 8.57% 19.725 2 Шаблон:Collapse_top 5.61% 12.920 6 Шаблон:Ifsubst 1.03% 2.369 2 Шаблон:Collapse_bottom 0.87% 2.010 2 Шаблон:Main_other --> <!-- Saved in parser cache with key ukwiki:pcache:1636569:|#|:idhash:canonical and timestamp 20241123144224 and revision id 38797285. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Отримано з <a dir="ltr" href="https://uk.wikipedia.org/w/index.php?title=Качина_типізація&amp;oldid=38797285">https://uk.wikipedia.org/w/index.php?title=Качина_типізація&amp;oldid=38797285</a></div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D1%96%D1%97" title="Спеціальна:Категорії">Категорії</a>: <ul><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D1%96%D1%8F:%D0%9E%D0%B1%27%D1%94%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D1%96%D1%94%D0%BD%D1%82%D0%BE%D0%B2%D0%B0%D0%BD%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F" title="Категорія:Об&#039;єктно-орієнтоване програмування">Об'єктно-орієнтоване програмування</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D1%96%D1%8F:%D0%A2%D0%B5%D0%BE%D1%80%D1%96%D1%8F_%D1%82%D0%B8%D0%BF%D1%96%D0%B2" title="Категорія:Теорія типів">Теорія типів</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D1%96%D1%8F:%D0%9F%D1%82%D0%B0%D1%85%D0%B8_%D0%B2_%D0%BA%D1%83%D0%BB%D1%8C%D1%82%D1%83%D1%80%D1%96" title="Категорія:Птахи в культурі">Птахи в культурі</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Приховані категорії: <ul><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D1%96%D1%8F:%D0%A1%D1%82%D0%BE%D1%80%D1%96%D0%BD%D0%BA%D0%B8,_%D1%8F%D0%BA%D1%96_%D0%BC%D1%96%D1%81%D1%82%D1%8F%D1%82%D1%8C_%D0%BF%D0%BE%D0%BC%D0%B8%D0%BB%D0%BA%D0%B8_%D0%BF%D1%96%D0%B4%D1%81%D0%B2%D1%96%D1%87%D0%B5%D0%BD%D0%BD%D1%8F_%D1%81%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%81%D1%83" title="Категорія:Сторінки, які містять помилки підсвічення синтаксису">Сторінки, які містять помилки підсвічення синтаксису</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D1%96%D1%8F:%D0%A1%D1%82%D0%BE%D1%80%D1%96%D0%BD%D0%BA%D0%B8_%D0%B7_%D0%B2%D0%B8%D0%BA%D0%BE%D1%80%D0%B8%D1%81%D1%82%D0%B0%D0%BD%D0%BD%D1%8F%D0%BC_%D1%80%D0%BE%D0%B7%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%BD%D1%8F_JsonConfig" title="Категорія:Сторінки з використанням розширення JsonConfig">Сторінки з використанням розширення JsonConfig</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D1%96%D1%8F:%D0%A1%D1%82%D0%B0%D1%82%D1%82%D1%96_%D0%B7_%D0%BF%D1%80%D0%B8%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BC%D0%B8_%D0%BA%D0%BE%D0%B4%D1%83_%D0%BC%D0%BE%D0%B2%D0%BE%D1%8E_Python" title="Категорія:Статті з прикладами коду мовою Python">Статті з прикладами коду мовою Python</a></li></ul></div></div> </div> </div> <div id="mw-navigation"> <h2>Навігаційне меню</h2> <div id="mw-head"> <nav id="p-personal" class="mw-portlet mw-portlet-personal vector-user-menu-legacy vector-menu" aria-labelledby="p-personal-label" > <h3 id="p-personal-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Особисті інструменти</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anonuserpage" class="mw-list-item"><span title="Сторінка користувача для вашої IP-адреси">Ви не увійшли до системи</span></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:%D0%9C%D0%BE%D1%94_%D0%BE%D0%B1%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%BD%D1%8F" title="Обговорення редагувань з цієї IP-адреси [n]" accesskey="n"><span>Обговорення</span></a></li><li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:%D0%9C%D1%96%D0%B9_%D0%B2%D0%BD%D0%B5%D1%81%D0%BE%D0%BA" title="Список редагувань, зроблених з цієї IP-адреси [y]" accesskey="y"><span>Внесок</span></a></li><li id="pt-createaccount" class="mw-list-item"><a href="/w/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:%D0%A1%D1%82%D0%B2%D0%BE%D1%80%D0%B8%D1%82%D0%B8_%D0%BE%D0%B1%D0%BB%D1%96%D0%BA%D0%BE%D0%B2%D0%B8%D0%B9_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81&amp;returnto=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0+%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F" title="Пропонуємо створити обліковий запис і увійти в систему; однак, це не обов&#039;язково"><span>Створити обліковий запис</span></a></li><li id="pt-login" class="mw-list-item"><a href="/w/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:%D0%92%D1%85%D1%96%D0%B4&amp;returnto=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0+%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F" title="Заохочуємо Вас увійти в систему, але це необов&#039;язково. [o]" accesskey="o"><span>Увійти</span></a></li> </ul> </div> </nav> <div id="left-navigation"> <nav id="p-namespaces" class="mw-portlet mw-portlet-namespaces vector-menu-tabs vector-menu-tabs-legacy vector-menu" aria-labelledby="p-namespaces-label" > <h3 id="p-namespaces-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Простори назв</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected mw-list-item"><a href="/wiki/%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F" title="Вміст статті [c]" accesskey="c"><span>Стаття</span></a></li><li id="ca-talk" class="new mw-list-item"><a href="/w/index.php?title=%D0%9E%D0%B1%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%BD%D1%8F:%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;action=edit&amp;redlink=1" rel="discussion" class="new" title="Обговорення сторінки (ще не написана) [t]" accesskey="t"><span>Обговорення</span></a></li> </ul> </div> </nav> <nav id="p-variants" class="mw-portlet mw-portlet-variants emptyPortlet vector-menu-dropdown vector-menu" aria-labelledby="p-variants-label" > <input type="checkbox" id="p-variants-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-variants" class="vector-menu-checkbox" aria-labelledby="p-variants-label" > <label id="p-variants-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">українська</span> </label> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </nav> </div> <div id="right-navigation"> <nav id="p-views" class="mw-portlet mw-portlet-views vector-menu-tabs vector-menu-tabs-legacy vector-menu" aria-labelledby="p-views-label" > <h3 id="p-views-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Перегляди</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="mw-list-item"><a href="/w/index.php?title=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;stable=1"><span>Читати</span></a></li><li id="ca-current" class="collapsible selected mw-list-item"><a href="/w/index.php?title=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;stable=0&amp;redirect=no" title="Переглянути цю сторінку з неперевіреними змінами [v]" accesskey="v"><span>Неперевірені зміни</span></a></li><li id="ca-ve-edit" class="mw-list-item"><a href="/w/index.php?title=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;veaction=edit" title="Редагувати цю сторінку [v]" accesskey="v"><span>Редагувати</span></a></li><li id="ca-edit" class="collapsible mw-list-item"><a href="/w/index.php?title=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;action=edit" title="Редагувати вихідний код сторінки [e]" accesskey="e"><span>Редагувати код</span></a></li><li id="ca-history" class="mw-list-item"><a href="/w/index.php?title=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;action=history" title="Журнал змін сторінки [h]" accesskey="h"><span>Переглянути історію</span></a></li> </ul> </div> </nav> <nav id="p-cactions" class="mw-portlet mw-portlet-cactions emptyPortlet vector-menu-dropdown vector-menu" aria-labelledby="p-cactions-label" title="Більше опцій" > <input type="checkbox" id="p-cactions-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-cactions" class="vector-menu-checkbox" aria-labelledby="p-cactions-label" > <label id="p-cactions-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Більше</span> </label> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </nav> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <h3 >Пошук</h3> <form action="/w/index.php" id="searchform" class="vector-search-box-form"> <div id="simpleSearch" class="vector-search-box-inner" data-search-loc="header-navigation"> <input class="vector-search-box-input" type="search" name="search" placeholder="Пошук у Вікіпедії" aria-label="Пошук у Вікіпедії" autocapitalize="sentences" title="Шукати у Вікіпедії [f]" accesskey="f" id="searchInput" > <input type="hidden" name="title" value="Спеціальна:Пошук"> <input id="mw-searchButton" class="searchButton mw-fallbackSearchButton" type="submit" name="fulltext" title="Знайти сторінки, що містять зазначений текст" value="Знайти"> <input id="searchButton" class="searchButton" type="submit" name="go" title="Перейти до сторінки, що має точно таку назву (якщо вона існує)" value="Перейти"> </div> </form> </div> </div> </div> <div id="mw-panel" class="vector-legacy-sidebar"> <div id="p-logo" role="banner"> <a class="mw-wiki-logo" href="/wiki/%D0%93%D0%BE%D0%BB%D0%BE%D0%B2%D0%BD%D0%B0_%D1%81%D1%82%D0%BE%D1%80%D1%96%D0%BD%D0%BA%D0%B0" title="Перейти на головну сторінку"></a> </div> <nav id="p-navigation" class="mw-portlet mw-portlet-navigation vector-menu-portal portal vector-menu" aria-labelledby="p-navigation-label" > <h3 id="p-navigation-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Навігація</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/%D0%93%D0%BE%D0%BB%D0%BE%D0%B2%D0%BD%D0%B0_%D1%81%D1%82%D0%BE%D1%80%D1%96%D0%BD%D0%BA%D0%B0" title="Перейти на головну сторінку [z]" accesskey="z"><span>Головна сторінка</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/%D0%9F%D0%BE%D1%80%D1%82%D0%B0%D0%BB:%D0%9F%D0%BE%D1%82%D0%BE%D1%87%D0%BD%D1%96_%D0%BF%D0%BE%D0%B4%D1%96%D1%97" title="Список поточних подій"><span>Поточні події</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:%D0%9D%D0%BE%D0%B2%D1%96_%D1%80%D0%B5%D0%B4%D0%B0%D0%B3%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F" title="Список останніх змін у цій вікі [r]" accesskey="r"><span>Нові редагування</span></a></li><li id="n-newpages" class="mw-list-item"><a href="/wiki/%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:%D0%9D%D0%BE%D0%B2%D1%96_%D1%81%D1%82%D0%BE%D1%80%D1%96%D0%BD%D0%BA%D0%B8"><span>Нові сторінки</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:%D0%92%D0%B8%D0%BF%D0%B0%D0%B4%D0%BA%D0%BE%D0%B2%D0%B0_%D1%81%D1%82%D0%BE%D1%80%D1%96%D0%BD%D0%BA%D0%B0" title="Переглянути випадкову сторінку [x]" accesskey="x"><span>Випадкова стаття</span></a></li> </ul> </div> </nav> <nav id="p-Участь" class="mw-portlet mw-portlet-Участь vector-menu-portal portal vector-menu" aria-labelledby="p-Участь-label" > <h3 id="p-Участь-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Участь</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-portal" class="mw-list-item"><a href="/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%BF%D0%B5%D0%B4%D1%96%D1%8F:%D0%9F%D0%BE%D1%80%D1%82%D0%B0%D0%BB_%D1%81%D0%BF%D1%96%D0%BB%D1%8C%D0%BD%D0%BE%D1%82%D0%B8" title="Про проєкт, про те, що Ви можете зробити, і що де шукати"><span>Портал спільноти</span></a></li><li id="n-tavern" class="mw-list-item"><a href="/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%BF%D0%B5%D0%B4%D1%96%D1%8F:%D0%9A%D0%BD%D0%B0%D0%B9%D0%BF%D0%B0" title="Місце для обговорення більшості питань"><span>Кнайпа</span></a></li><li id="n-help" class="mw-list-item"><a href="/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%BF%D0%B5%D0%B4%D1%96%D1%8F:%D0%94%D0%BE%D0%B2%D1%96%D0%B4%D0%BA%D0%B0" title="Довідка з проєкту"><span>Довідка</span></a></li><li id="n-sitesupport" class="mw-list-item"><a href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_uk.wikipedia.org&amp;uselang=uk" title="Підтримайте проєкт"><span>Пожертвувати</span></a></li><li id="n-Сторінка-для-медіа" class="mw-list-item"><a href="/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%BF%D0%B5%D0%B4%D1%96%D1%8F:%D0%A1%D1%82%D0%BE%D1%80%D1%96%D0%BD%D0%BA%D0%B0_%D0%B4%D0%BB%D1%8F_%D0%BC%D0%B5%D0%B4%D1%96%D0%B0"><span>Сторінка для медіа</span></a></li> </ul> </div> </nav> <nav id="p-tb" class="mw-portlet mw-portlet-tb vector-menu-portal portal vector-menu" aria-labelledby="p-tb-label" > <h3 id="p-tb-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Інструменти</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:%D0%9F%D0%BE%D1%81%D0%B8%D0%BB%D0%B0%D0%BD%D0%BD%D1%8F_%D1%81%D1%8E%D0%B4%D0%B8/%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F" title="Перелік усіх сторінок, які посилаються на цю сторінку [j]" accesskey="j"><span>Посилання сюди</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:%D0%9F%D0%BE%D0%B2%27%D1%8F%D0%B7%D0%B0%D0%BD%D1%96_%D1%80%D0%B5%D0%B4%D0%B0%D0%B3%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F/%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F" rel="nofollow" title="Останні зміни на сторінках, на які посилається ця сторінка [k]" accesskey="k"><span>Пов'язані редагування</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D1%96_%D1%81%D1%82%D0%BE%D1%80%D1%96%D0%BD%D0%BA%D0%B8" title="Перелік спеціальних сторінок [q]" accesskey="q"><span>Спеціальні сторінки</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;oldid=38797285" title="Постійне посилання на цю версію цієї сторінки"><span>Постійне посилання</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;action=info" title="Додаткові відомості про цю сторінку"><span>Інформація про сторінку</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:%D0%A6%D0%B8%D1%82%D0%B0%D1%82%D0%B0&amp;page=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;id=38797285&amp;wpFormIdentifier=titleform" title="Інформація про те, як цитувати цю сторінку"><span>Цитувати сторінку</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:UrlShortener&amp;url=https%3A%2F%2Fuk.wikipedia.org%2Fwiki%2F%25D0%259A%25D0%25B0%25D1%2587%25D0%25B8%25D0%25BD%25D0%25B0_%25D1%2582%25D0%25B8%25D0%25BF%25D1%2596%25D0%25B7%25D0%25B0%25D1%2586%25D1%2596%25D1%258F"><span>Отримати вкорочену URL-адресу</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:QrCode&amp;url=https%3A%2F%2Fuk.wikipedia.org%2Fwiki%2F%25D0%259A%25D0%25B0%25D1%2587%25D0%25B8%25D0%25BD%25D0%25B0_%25D1%2582%25D0%25B8%25D0%25BF%25D1%2596%25D0%25B7%25D0%25B0%25D1%2586%25D1%2596%25D1%258F"><span>Завантажити QR-код</span></a></li> </ul> </div> </nav> <nav id="p-coll-print_export" class="mw-portlet mw-portlet-coll-print_export vector-menu-portal portal vector-menu" aria-labelledby="p-coll-print_export-label" > <h3 id="p-coll-print_export-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Друк/експорт</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-create_a_book" class="mw-list-item"><a href="/w/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:%D0%9A%D0%BD%D0%B8%D0%B3%D0%B0&amp;bookcmd=book_creator&amp;referer=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0+%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F"><span>Створити книгу</span></a></li><li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:DownloadAsPdf&amp;page=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;action=show-download-screen"><span>Завантажити як PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;printable=yes" title="Версія цієї сторінки для друку [p]" accesskey="p"><span>Версія до друку</span></a></li> </ul> </div> </nav> <nav id="p-wikibase-otherprojects" class="mw-portlet mw-portlet-wikibase-otherprojects vector-menu-portal portal vector-menu" aria-labelledby="p-wikibase-otherprojects-label" > <h3 id="p-wikibase-otherprojects-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">В інших проєктах</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q374282" title="Посилання на пов’язаний елемент сховища даних [g]" accesskey="g"><span>Елемент Вікіданих</span></a></li> </ul> </div> </nav> <nav id="p-lang" class="mw-portlet mw-portlet-lang vector-menu-portal portal vector-menu" aria-labelledby="p-lang-label" > <h3 id="p-lang-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Іншими мовами</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D8%AA%D9%86%D9%88%D9%8A%D8%B9_%D8%A7%D9%84%D8%A8%D8%B7" title="تنويع البط — арабська" lang="ar" hreflang="ar" data-title="تنويع البط" data-language-autonym="العربية" data-language-local-name="арабська" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-be-x-old mw-list-item"><a href="https://be-tarask.wikipedia.org/wiki/%D0%9A%D0%B0%D1%87%D1%8B%D0%BD%D0%B0%D1%8F_%D1%82%D1%8B%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%8B%D1%8F" title="Качыная тыпізацыя — Belarusian (Taraškievica orthography)" lang="be-tarask" hreflang="be-tarask" data-title="Качыная тыпізацыя" data-language-autonym="Беларуская (тарашкевіца)" data-language-local-name="Belarusian (Taraškievica orthography)" class="interlanguage-link-target"><span>Беларуская (тарашкевіца)</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Duck-typing" title="Duck-typing — чеська" lang="cs" hreflang="cs" data-title="Duck-typing" data-language-autonym="Čeština" data-language-local-name="чеська" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Duck-Typing" title="Duck-Typing — німецька" lang="de" hreflang="de" data-title="Duck-Typing" data-language-autonym="Deutsch" data-language-local-name="німецька" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-en mw-list-item"><a href="https://en.wikipedia.org/wiki/Duck_typing" title="Duck typing — англійська" lang="en" hreflang="en" data-title="Duck typing" data-language-autonym="English" data-language-local-name="англійська" class="interlanguage-link-target"><span>English</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Duck_typing" title="Duck typing — іспанська" lang="es" hreflang="es" data-title="Duck typing" data-language-autonym="Español" data-language-local-name="іспанська" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D9%86%D9%88%D8%B9%E2%80%8C%D8%AF%D9%87%DB%8C_%D8%A7%D8%B1%D8%AF%DA%A9%DB%8C" title="نوع‌دهی اردکی — перська" lang="fa" hreflang="fa" data-title="نوع‌دهی اردکی" data-language-autonym="فارسی" data-language-local-name="перська" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/Ankkatyypitys" title="Ankkatyypitys — фінська" lang="fi" hreflang="fi" data-title="Ankkatyypitys" data-language-autonym="Suomi" data-language-local-name="фінська" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Duck_typing" title="Duck typing — французька" lang="fr" hreflang="fr" data-title="Duck typing" data-language-autonym="Français" data-language-local-name="французька" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-gl mw-list-item"><a href="https://gl.wikipedia.org/wiki/Tipado_Pato" title="Tipado Pato — галісійська" lang="gl" hreflang="gl" data-title="Tipado Pato" data-language-autonym="Galego" data-language-local-name="галісійська" class="interlanguage-link-target"><span>Galego</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Duck_typing" title="Duck typing — італійська" lang="it" hreflang="it" data-title="Duck typing" data-language-autonym="Italiano" data-language-local-name="італійська" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E3%83%80%E3%83%83%E3%82%AF%E3%83%BB%E3%82%BF%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0" title="ダック・タイピング — японська" lang="ja" hreflang="ja" data-title="ダック・タイピング" data-language-autonym="日本語" data-language-local-name="японська" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EB%8D%95_%ED%83%80%EC%9D%B4%ED%95%91" title="덕 타이핑 — корейська" lang="ko" hreflang="ko" data-title="덕 타이핑" data-language-autonym="한국어" data-language-local-name="корейська" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-ml mw-list-item"><a href="https://ml.wikipedia.org/wiki/%E0%B4%A1%E0%B4%95%E0%B5%8D%E0%B4%95%E0%B5%8D_%E0%B4%9F%E0%B5%88%E0%B4%AA%E0%B5%8D%E0%B4%AA%E0%B4%BF%E0%B4%82%E0%B4%97%E0%B5%8D" title="ഡക്ക് ടൈപ്പിംഗ് — малаялам" lang="ml" hreflang="ml" data-title="ഡക്ക് ടൈപ്പിംഗ്" data-language-autonym="മലയാളം" data-language-local-name="малаялам" class="interlanguage-link-target"><span>മലയാളം</span></a></li><li class="interlanguage-link interwiki-ms mw-list-item"><a href="https://ms.wikipedia.org/wiki/Penjenisan_itik" title="Penjenisan itik — малайська" lang="ms" hreflang="ms" data-title="Penjenisan itik" data-language-autonym="Bahasa Melayu" data-language-local-name="малайська" class="interlanguage-link-target"><span>Bahasa Melayu</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Duck-typing" title="Duck-typing — нідерландська" lang="nl" hreflang="nl" data-title="Duck-typing" data-language-autonym="Nederlands" data-language-local-name="нідерландська" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Duck_typing" title="Duck typing — польська" lang="pl" hreflang="pl" data-title="Duck typing" data-language-autonym="Polski" data-language-local-name="польська" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Duck_typing" title="Duck typing — португальська" lang="pt" hreflang="pt" data-title="Duck typing" data-language-autonym="Português" data-language-local-name="португальська" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%A3%D1%82%D0%B8%D0%BD%D0%B0%D1%8F_%D1%82%D0%B8%D0%BF%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F" title="Утиная типизация — російська" lang="ru" hreflang="ru" data-title="Утиная типизация" data-language-autonym="Русский" data-language-local-name="російська" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-simple mw-list-item"><a href="https://simple.wikipedia.org/wiki/Duck_typing" title="Duck typing — Simple English" lang="en-simple" hreflang="en-simple" data-title="Duck typing" data-language-autonym="Simple English" data-language-local-name="Simple English" class="interlanguage-link-target"><span>Simple English</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Duck_typing" title="Duck typing — шведська" lang="sv" hreflang="sv" data-title="Duck typing" data-language-autonym="Svenska" data-language-local-name="шведська" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-th mw-list-item"><a href="https://th.wikipedia.org/wiki/%E0%B8%94%E0%B8%B1%E0%B8%81%E0%B9%84%E0%B8%97%E0%B8%9B%E0%B8%9B%E0%B8%B4%E0%B8%87" title="ดักไทปปิง — тайська" lang="th" hreflang="th" data-title="ดักไทปปิง" data-language-autonym="ไทย" data-language-local-name="тайська" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/Duck_Typing" title="Duck Typing — турецька" lang="tr" hreflang="tr" data-title="Duck Typing" data-language-autonym="Türkçe" data-language-local-name="турецька" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/%E9%B8%AD%E5%AD%90%E7%B1%BB%E5%9E%8B" title="鸭子类型 — китайська" lang="zh" hreflang="zh" data-title="鸭子类型" data-language-autonym="中文" data-language-local-name="китайська" class="interlanguage-link-target"><span>中文</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q374282#sitelinks-wikipedia" title="Редагувати міжмовні посилання" class="wbc-editpage">Редагувати посилання</a></span></div> </div> </nav> </div> </div> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> Цю сторінку востаннє відредаговано о 21:24, 10 березня 2023.</li> <li id="footer-info-copyright">Текст доступний на умовах ліцензії <a rel="nofollow" class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.uk">Creative Commons Attribution-ShareAlike</a>; також можуть діяти додаткові умови. Детальніше див. <a class="external text" href="https://foundation.wikimedia.org/wiki/Policy:Terms_of_Use/uk">Умови використання</a>.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Політика конфіденційності</a></li> <li id="footer-places-about"><a href="/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%BF%D0%B5%D0%B4%D1%96%D1%8F:%D0%9F%D1%80%D0%BE">Про Вікіпедію</a></li> <li id="footer-places-disclaimers"><a href="/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%BF%D0%B5%D0%B4%D1%96%D1%8F:%D0%92%D1%96%D0%B4%D0%BC%D0%BE%D0%B2%D0%B0_%D0%B2%D1%96%D0%B4_%D0%B2%D1%96%D0%B4%D0%BF%D0%BE%D0%B2%D1%96%D0%B4%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%96">Відмова від відповідальності</a></li> <li id="footer-places-contact"><a href="//uk.wikipedia.org/wiki/Вікіпедія:Зворотний_зв%27язок">Зворотний зв'язок</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Кодекс поведінки</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Розробники</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/uk.wikipedia.org">Статистика</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Куки</a></li> <li id="footer-places-mobileview"><a href="//uk.m.wikipedia.org/w/index.php?title=%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Мобільний вигляд</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> <script>(RLQ=window.RLQ||[]).push(function(){mw.log.warn("This page is using the deprecated ResourceLoader module \"codex-search-styles\".\n[1.43] Use a CodexModule with codexComponents to set your specific components used: https://www.mediawiki.org/wiki/Codex#Using_a_limited_subset_of_components");mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-g2nql","wgBackendResponseTime":162,"wgPageParseReport":{"limitreport":{"cputime":"0.200","walltime":"0.250","ppvisitednodes":{"value":379,"limit":1000000},"postexpandincludesize":{"value":3592,"limit":2097152},"templateargumentsize":{"value":214,"limit":2097152},"expansiondepth":{"value":8,"limit":100},"expensivefunctioncount":{"value":4,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":17123,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 230.239 1 -total"," 53.46% 123.086 1 Шаблон:Lang-en"," 35.38% 81.449 1 Шаблон:Reflist"," 30.57% 70.376 2 Шаблон:Cite_web"," 8.57% 19.725 2 Шаблон:Collapse_top"," 5.61% 12.920 6 Шаблон:Ifsubst"," 1.03% 2.369 2 Шаблон:Collapse_bottom"," 0.87% 2.010 2 Шаблон:Main_other"]},"scribunto":{"limitreport-timeusage":{"value":"0.138","limit":"10.000"},"limitreport-memusage":{"value":17539230,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.main-f69cdc8f6-7gxbk","timestamp":"20241123144224","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"\u041a\u0430\u0447\u0438\u043d\u0430 \u0442\u0438\u043f\u0456\u0437\u0430\u0446\u0456\u044f","url":"https:\/\/uk.wikipedia.org\/wiki\/%D0%9A%D0%B0%D1%87%D0%B8%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F","sameAs":"http:\/\/www.wikidata.org\/entity\/Q374282","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q374282","author":{"@type":"Organization","name":"\u0423\u0447\u0430\u0441\u043d\u0438\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0456\u0432 \u0412\u0456\u043a\u0456\u043c\u0435\u0434\u0456\u0430"},"publisher":{"@type":"Organization","name":"\u0424\u043e\u043d\u0434 \u0412\u0456\u043a\u0456\u043c\u0435\u0434\u0456\u0430","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2013-12-27T23:56:41Z","dateModified":"2023-03-10T21:24:49Z","headline":"\u0442\u0438\u043f \u0434\u0438\u043d\u0430\u043c\u0456\u0447\u043d\u043e\u0457 \u0442\u0438\u043f\u0456\u0437\u0430\u0446\u0456\u0457 \u0432 \u043e\u0431'\u0454\u043a\u0442\u043d\u043e-\u043e\u0440\u0456\u0454\u043d\u0442\u043e\u0432\u0430\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0443\u0432\u0430\u043d\u043d\u0456"}</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10