CINXE.COM
Swift (programming language) - Wikipedia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Swift (programming language) - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);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":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"006cc528-d79b-40ef-bede-64523bafdea1","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Swift_(programming_language)","wgTitle":"Swift (programming language)","wgCurRevisionId":1259229976,"wgRevisionId":1259229976,"wgArticleId":42946389,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["CS1 errors: missing title","CS1 errors: bare URL","CS1 errors: generic name","Webarchive template wayback links","Articles with short description","Short description is different from Wikidata","Use mdy dates from October 2018","Wikipedia articles that are too technical from June 2018","All articles that are too technical","Articles with excerpts","Articles with example Swift code","Swift (programming language)","Apple Inc. software", "Programming languages","High-level programming languages","Declarative programming languages","Object-oriented programming languages","Functional languages","Pattern matching programming languages","Programming languages created in 2014","Statically typed programming languages","Systems programming languages","Cross-platform free software","Software using the Apache license"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Swift_(programming_language)","wgRelevantArticleId":42946389,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{ "search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":80000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q17118377","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.cite.styles":"ready","ext.pygments":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready", "skins.vector.icons":"ready","jquery.tablesorter.styles":"ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","ext.pygments.view","site","mediawiki.page.ready","jquery.tablesorter","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","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=en&modules=ext.cite.styles%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cjquery.tablesorter.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector-2022"> <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="Swift (programming language) - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Swift_(programming_language)"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Swift_(programming_language)&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="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Swift_(programming_language)"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Swift_programming_language rootpage-Swift_programming_language skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&returnto=Swift+%28programming+language%29" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&returnto=Swift+%28programming+language%29" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=Swift+%28programming+language%29" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=Swift+%28programming+language%29" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-History" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#History"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>History</span> </div> </a> <button aria-controls="toc-History-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle History subsection</span> </button> <ul id="toc-History-sublist" class="vector-toc-list"> <li id="toc-Platforms" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Platforms"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.1</span> <span>Platforms</span> </div> </a> <ul id="toc-Platforms-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Version_history" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Version_history"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.2</span> <span>Version history</span> </div> </a> <ul id="toc-Version_history-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Features" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Features"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Features</span> </div> </a> <button aria-controls="toc-Features-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Features subsection</span> </button> <ul id="toc-Features-sublist" class="vector-toc-list"> <li id="toc-Basic_syntax" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Basic_syntax"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span> <span>Basic syntax</span> </div> </a> <ul id="toc-Basic_syntax-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Closure_support" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Closure_support"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2</span> <span>Closure support</span> </div> </a> <ul id="toc-Closure_support-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-String_support" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#String_support"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3</span> <span>String support</span> </div> </a> <ul id="toc-String_support-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Callable_objects" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Callable_objects"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.4</span> <span>Callable objects</span> </div> </a> <ul id="toc-Callable_objects-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Access_control" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Access_control"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5</span> <span>Access control</span> </div> </a> <ul id="toc-Access_control-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Optionals_and_chaining" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Optionals_and_chaining"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.6</span> <span>Optionals and chaining</span> </div> </a> <ul id="toc-Optionals_and_chaining-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Value_types" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Value_types"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.7</span> <span>Value types</span> </div> </a> <ul id="toc-Value_types-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Extensions" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Extensions"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.8</span> <span>Extensions</span> </div> </a> <ul id="toc-Extensions-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Protocol-oriented_programming" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Protocol-oriented_programming"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.9</span> <span>Protocol-oriented programming</span> </div> </a> <ul id="toc-Protocol-oriented_programming-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Concurrency" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Concurrency"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.10</span> <span>Concurrency</span> </div> </a> <ul id="toc-Concurrency-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Libraries,_runtime,_development" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Libraries,_runtime,_development"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.11</span> <span>Libraries, runtime, development</span> </div> </a> <ul id="toc-Libraries,_runtime,_development-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Memory_management" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Memory_management"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.12</span> <span>Memory management</span> </div> </a> <ul id="toc-Memory_management-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Debugging" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Debugging"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.13</span> <span>Debugging</span> </div> </a> <ul id="toc-Debugging-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Comparisons_to_other_languages" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Comparisons_to_other_languages"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Comparisons to other languages</span> </div> </a> <ul id="toc-Comparisons_to_other_languages-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Development_and_other_implementations" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Development_and_other_implementations"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Development and other implementations</span> </div> </a> <ul id="toc-Development_and_other_implementations-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-External_links" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#External_links"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>External links</span> </div> </a> <ul id="toc-External_links-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Swift (programming language)</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 47 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-47" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">47 languages</span> </label> <div class="vector-dropdown-content"> <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%B3%D9%88%D9%8A%D9%81%D8%AA_(%D9%84%D8%BA%D8%A9_%D8%A8%D8%B1%D9%85%D8%AC%D8%A9)" title="سويفت (لغة برمجة) – Arabic" lang="ar" hreflang="ar" data-title="سويفت (لغة برمجة)" data-language-autonym="العربية" data-language-local-name="Arabic" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-az mw-list-item"><a href="https://az.wikipedia.org/wiki/Swift" title="Swift – Azerbaijani" lang="az" hreflang="az" data-title="Swift" data-language-autonym="Azərbaycanca" data-language-local-name="Azerbaijani" class="interlanguage-link-target"><span>Azərbaycanca</span></a></li><li class="interlanguage-link interwiki-bn mw-list-item"><a href="https://bn.wikipedia.org/wiki/%E0%A6%B8%E0%A7%81%E0%A6%87%E0%A6%AB%E0%A6%9F_(%E0%A6%AA%E0%A7%8D%E0%A6%B0%E0%A7%8B%E0%A6%97%E0%A7%8D%E0%A6%B0%E0%A6%BE%E0%A6%AE%E0%A6%BF%E0%A6%82_%E0%A6%AD%E0%A6%BE%E0%A6%B7%E0%A6%BE)" title="সুইফট (প্রোগ্রামিং ভাষা) – Bangla" lang="bn" hreflang="bn" data-title="সুইফট (প্রোগ্রামিং ভাষা)" data-language-autonym="বাংলা" data-language-local-name="Bangla" class="interlanguage-link-target"><span>বাংলা</span></a></li><li class="interlanguage-link interwiki-be mw-list-item"><a href="https://be.wikipedia.org/wiki/Swift" title="Swift – Belarusian" lang="be" hreflang="be" data-title="Swift" data-language-autonym="Беларуская" data-language-local-name="Belarusian" class="interlanguage-link-target"><span>Беларуская</span></a></li><li class="interlanguage-link interwiki-bg mw-list-item"><a href="https://bg.wikipedia.org/wiki/SWIFT_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B5%D0%BD_%D0%B5%D0%B7%D0%B8%D0%BA)" title="SWIFT (програмен език) – Bulgarian" lang="bg" hreflang="bg" data-title="SWIFT (програмен език)" data-language-autonym="Български" data-language-local-name="Bulgarian" class="interlanguage-link-target"><span>Български</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Swift_(llenguatge_de_programaci%C3%B3)" title="Swift (llenguatge de programació) – Catalan" lang="ca" hreflang="ca" data-title="Swift (llenguatge de programació)" data-language-autonym="Català" data-language-local-name="Catalan" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Swift_(programovac%C3%AD_jazyk)" title="Swift (programovací jazyk) – Czech" lang="cs" hreflang="cs" data-title="Swift (programovací jazyk)" data-language-autonym="Čeština" data-language-local-name="Czech" 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/Swift_(Programmiersprache)" title="Swift (Programmiersprache) – German" lang="de" hreflang="de" data-title="Swift (Programmiersprache)" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-el mw-list-item"><a href="https://el.wikipedia.org/wiki/Swift_(%CE%B3%CE%BB%CF%8E%CF%83%CF%83%CE%B1_%CF%80%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CE%BF%CF%8D)" title="Swift (γλώσσα προγραμματισμού) – Greek" lang="el" hreflang="el" data-title="Swift (γλώσσα προγραμματισμού)" data-language-autonym="Ελληνικά" data-language-local-name="Greek" class="interlanguage-link-target"><span>Ελληνικά</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Swift_(lenguaje_de_programaci%C3%B3n)" title="Swift (lenguaje de programación) – Spanish" lang="es" hreflang="es" data-title="Swift (lenguaje de programación)" data-language-autonym="Español" data-language-local-name="Spanish" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-eo mw-list-item"><a href="https://eo.wikipedia.org/wiki/Swift_(programlingvo)" title="Swift (programlingvo) – Esperanto" lang="eo" hreflang="eo" data-title="Swift (programlingvo)" data-language-autonym="Esperanto" data-language-local-name="Esperanto" class="interlanguage-link-target"><span>Esperanto</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D8%B3%D9%88%D8%A6%DB%8C%D9%81%D8%AA_(%D8%B2%D8%A8%D8%A7%D9%86_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C)" title="سوئیفت (زبان برنامهنویسی) – Persian" lang="fa" hreflang="fa" data-title="سوئیفت (زبان برنامهنویسی)" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Swift_(langage_d%27Apple)" title="Swift (langage d'Apple) – French" lang="fr" hreflang="fr" data-title="Swift (langage d'Apple)" data-language-autonym="Français" data-language-local-name="French" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EC%8A%A4%EC%9C%84%ED%94%84%ED%8A%B8_(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4)" title="스위프트 (프로그래밍 언어) – Korean" lang="ko" hreflang="ko" data-title="스위프트 (프로그래밍 언어)" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-hy mw-list-item"><a href="https://hy.wikipedia.org/wiki/Swift_(%D5%AE%D6%80%D5%A1%D5%A3%D6%80%D5%A1%D5%BE%D5%B8%D6%80%D5%B4%D5%A1%D5%B6_%D5%AC%D5%A5%D5%A6%D5%B8%D6%82)" title="Swift (ծրագրավորման լեզու) – Armenian" lang="hy" hreflang="hy" data-title="Swift (ծրագրավորման լեզու)" data-language-autonym="Հայերեն" data-language-local-name="Armenian" class="interlanguage-link-target"><span>Հայերեն</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/Swift_(bahasa_pemrograman)" title="Swift (bahasa pemrograman) – Indonesian" lang="id" hreflang="id" data-title="Swift (bahasa pemrograman)" data-language-autonym="Bahasa Indonesia" data-language-local-name="Indonesian" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li><li class="interlanguage-link interwiki-is mw-list-item"><a href="https://is.wikipedia.org/wiki/Swift" title="Swift – Icelandic" lang="is" hreflang="is" data-title="Swift" data-language-autonym="Íslenska" data-language-local-name="Icelandic" class="interlanguage-link-target"><span>Íslenska</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Swift_(linguaggio_di_programmazione)" title="Swift (linguaggio di programmazione) – Italian" lang="it" hreflang="it" data-title="Swift (linguaggio di programmazione)" data-language-autonym="Italiano" data-language-local-name="Italian" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-he mw-list-item"><a href="https://he.wikipedia.org/wiki/%D7%A1%D7%95%D7%95%D7%99%D7%A4%D7%98_(%D7%A9%D7%A4%D7%AA_%D7%AA%D7%9B%D7%A0%D7%95%D7%AA)" title="סוויפט (שפת תכנות) – Hebrew" lang="he" hreflang="he" data-title="סוויפט (שפת תכנות)" data-language-autonym="עברית" data-language-local-name="Hebrew" class="interlanguage-link-target"><span>עברית</span></a></li><li class="interlanguage-link interwiki-ky mw-list-item"><a href="https://ky.wikipedia.org/wiki/Swift" title="Swift – Kyrgyz" lang="ky" hreflang="ky" data-title="Swift" data-language-autonym="Кыргызча" data-language-local-name="Kyrgyz" class="interlanguage-link-target"><span>Кыргызча</span></a></li><li class="interlanguage-link interwiki-la mw-list-item"><a href="https://la.wikipedia.org/wiki/Swift_(lingua_programmandi)" title="Swift (lingua programmandi) – Latin" lang="la" hreflang="la" data-title="Swift (lingua programmandi)" data-language-autonym="Latina" data-language-local-name="Latin" class="interlanguage-link-target"><span>Latina</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/Swift_(programoz%C3%A1si_nyelv)" title="Swift (programozási nyelv) – Hungarian" lang="hu" hreflang="hu" data-title="Swift (programozási nyelv)" data-language-autonym="Magyar" data-language-local-name="Hungarian" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-ml mw-list-item"><a href="https://ml.wikipedia.org/wiki/%E0%B4%B8%E0%B5%8D%E0%B4%B5%E0%B4%BF%E0%B4%AB%E0%B5%8D%E0%B4%B1%E0%B5%8D%E0%B4%B1%E0%B5%8D_(%E0%B4%AA%E0%B5%8D%E0%B4%B0%E0%B5%8B%E0%B4%97%E0%B5%8D%E0%B4%B0%E0%B4%BE%E0%B4%AE%E0%B4%BF%E0%B4%99%E0%B5%8D_%E0%B4%AD%E0%B4%BE%E0%B4%B7)" title="സ്വിഫ്റ്റ് (പ്രോഗ്രാമിങ് ഭാഷ) – Malayalam" lang="ml" hreflang="ml" data-title="സ്വിഫ്റ്റ് (പ്രോഗ്രാമിങ് ഭാഷ)" data-language-autonym="മലയാളം" data-language-local-name="Malayalam" class="interlanguage-link-target"><span>മലയാളം</span></a></li><li class="interlanguage-link interwiki-ms mw-list-item"><a href="https://ms.wikipedia.org/wiki/Swift_(bahasa_pengaturcaraan)" title="Swift (bahasa pengaturcaraan) – Malay" lang="ms" hreflang="ms" data-title="Swift (bahasa pengaturcaraan)" data-language-autonym="Bahasa Melayu" data-language-local-name="Malay" 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/Swift_(programmeertaal)" title="Swift (programmeertaal) – Dutch" lang="nl" hreflang="nl" data-title="Swift (programmeertaal)" data-language-autonym="Nederlands" data-language-local-name="Dutch" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/Swift_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E)" title="Swift (プログラミング言語) – Japanese" lang="ja" hreflang="ja" data-title="Swift (プログラミング言語)" data-language-autonym="日本語" data-language-local-name="Japanese" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/Swift_(programmeringsspr%C3%A5k)" title="Swift (programmeringsspråk) – Norwegian Bokmål" lang="nb" hreflang="nb" data-title="Swift (programmeringsspråk)" data-language-autonym="Norsk bokmål" data-language-local-name="Norwegian Bokmål" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-uz mw-list-item"><a href="https://uz.wikipedia.org/wiki/Swift_(dasturlash_tili)" title="Swift (dasturlash tili) – Uzbek" lang="uz" hreflang="uz" data-title="Swift (dasturlash tili)" data-language-autonym="Oʻzbekcha / ўзбекча" data-language-local-name="Uzbek" class="interlanguage-link-target"><span>Oʻzbekcha / ўзбекча</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Swift_(j%C4%99zyk_programowania_LLVM)" title="Swift (język programowania LLVM) – Polish" lang="pl" hreflang="pl" data-title="Swift (język programowania LLVM)" data-language-autonym="Polski" data-language-local-name="Polish" 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/Swift_(linguagem_de_programa%C3%A7%C3%A3o)" title="Swift (linguagem de programação) – Portuguese" lang="pt" hreflang="pt" data-title="Swift (linguagem de programação)" data-language-autonym="Português" data-language-local-name="Portuguese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-kaa mw-list-item"><a href="https://kaa.wikipedia.org/wiki/Swift_(programmalast%C4%B1r%C4%B1w_tili)" title="Swift (programmalastırıw tili) – Kara-Kalpak" lang="kaa" hreflang="kaa" data-title="Swift (programmalastırıw tili)" data-language-autonym="Qaraqalpaqsha" data-language-local-name="Kara-Kalpak" class="interlanguage-link-target"><span>Qaraqalpaqsha</span></a></li><li class="interlanguage-link interwiki-ro mw-list-item"><a href="https://ro.wikipedia.org/wiki/Swift_(limbaj_de_programare)" title="Swift (limbaj de programare) – Romanian" lang="ro" hreflang="ro" data-title="Swift (limbaj de programare)" data-language-autonym="Română" data-language-local-name="Romanian" class="interlanguage-link-target"><span>Română</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/Swift_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)" title="Swift (язык программирования) – Russian" lang="ru" hreflang="ru" data-title="Swift (язык программирования)" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-simple mw-list-item"><a href="https://simple.wikipedia.org/wiki/Swift_(programming_language)" title="Swift (programming language) – Simple English" lang="en-simple" hreflang="en-simple" data-title="Swift (programming language)" 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-sk mw-list-item"><a href="https://sk.wikipedia.org/wiki/Swift" title="Swift – Slovak" lang="sk" hreflang="sk" data-title="Swift" data-language-autonym="Slovenčina" data-language-local-name="Slovak" class="interlanguage-link-target"><span>Slovenčina</span></a></li><li class="interlanguage-link interwiki-sl mw-list-item"><a href="https://sl.wikipedia.org/wiki/Swift_(programski_jezik)" title="Swift (programski jezik) – Slovenian" lang="sl" hreflang="sl" data-title="Swift (programski jezik)" data-language-autonym="Slovenščina" data-language-local-name="Slovenian" class="interlanguage-link-target"><span>Slovenščina</span></a></li><li class="interlanguage-link interwiki-ckb mw-list-item"><a href="https://ckb.wikipedia.org/wiki/%D8%B2%D9%85%D8%A7%D9%86%DB%8C_%D8%B3%D9%88%DB%8C%D9%81%D8%AA" title="زمانی سویفت – Central Kurdish" lang="ckb" hreflang="ckb" data-title="زمانی سویفت" data-language-autonym="کوردی" data-language-local-name="Central Kurdish" class="interlanguage-link-target"><span>کوردی</span></a></li><li class="interlanguage-link interwiki-sr mw-list-item"><a href="https://sr.wikipedia.org/wiki/Swift_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%81%D0%BA%D0%B8_%D1%98%D0%B5%D0%B7%D0%B8%D0%BA)" title="Swift (програмски језик) – Serbian" lang="sr" hreflang="sr" data-title="Swift (програмски језик)" data-language-autonym="Српски / srpski" data-language-local-name="Serbian" class="interlanguage-link-target"><span>Српски / srpski</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/Swift_(ohjelmointikieli)" title="Swift (ohjelmointikieli) – Finnish" lang="fi" hreflang="fi" data-title="Swift (ohjelmointikieli)" data-language-autonym="Suomi" data-language-local-name="Finnish" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Swift" title="Swift – Swedish" lang="sv" hreflang="sv" data-title="Swift" data-language-autonym="Svenska" data-language-local-name="Swedish" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-tg mw-list-item"><a href="https://tg.wikipedia.org/wiki/Swift" title="Swift – Tajik" lang="tg" hreflang="tg" data-title="Swift" data-language-autonym="Тоҷикӣ" data-language-local-name="Tajik" class="interlanguage-link-target"><span>Тоҷикӣ</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/Swift_(programlama_dili)" title="Swift (programlama dili) – Turkish" lang="tr" hreflang="tr" data-title="Swift (programlama dili)" data-language-autonym="Türkçe" data-language-local-name="Turkish" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/Swift_(%D0%BC%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="Swift (мова програмування) – Ukrainian" lang="uk" hreflang="uk" data-title="Swift (мова програмування)" data-language-autonym="Українська" data-language-local-name="Ukrainian" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/Swift_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)" title="Swift (ngôn ngữ lập trình) – Vietnamese" lang="vi" hreflang="vi" data-title="Swift (ngôn ngữ lập trình)" data-language-autonym="Tiếng Việt" data-language-local-name="Vietnamese" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-wuu mw-list-item"><a href="https://wuu.wikipedia.org/wiki/Swift%EF%BC%88%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80%EF%BC%89" title="Swift(编程语言) – Wu" lang="wuu" hreflang="wuu" data-title="Swift(编程语言)" data-language-autonym="吴语" data-language-local-name="Wu" class="interlanguage-link-target"><span>吴语</span></a></li><li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://zh-yue.wikipedia.org/wiki/Swift_(%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80)" title="Swift (程式語言) – Cantonese" lang="yue" hreflang="yue" data-title="Swift (程式語言)" data-language-autonym="粵語" data-language-local-name="Cantonese" class="interlanguage-link-target"><span>粵語</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/Swift%E8%AA%9E%E8%A8%80" title="Swift語言 – Chinese" lang="zh" hreflang="zh" data-title="Swift語言" data-language-autonym="中文" data-language-local-name="Chinese" 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/Q17118377#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Swift_(programming_language)" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Swift_(programming_language)" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Swift_(programming_language)"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Swift_(programming_language)&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Swift_(programming_language)&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Swift_(programming_language)"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Swift_(programming_language)&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Swift_(programming_language)&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Swift_(programming_language)" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Swift_(programming_language)" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Swift_(programming_language)&oldid=1259229976" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Swift_(programming_language)&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&page=Swift_%28programming_language%29&id=1259229976&wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FSwift_%28programming_language%29"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FSwift_%28programming_language%29"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&page=Swift_%28programming_language%29&action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Swift_(programming_language)&printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Category:Swift_(programming_language)" hreflang="en"><span>Wikimedia Commons</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q17118377" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">General-purpose compiled programming language</div> <style data-mw-deduplicate="TemplateStyles:r1236090951">.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}</style><div role="note" class="hatnote navigation-not-searchable">This article is about the Apple programming language. Not to be confused with <a href="/wiki/Swift_(parallel_scripting_language)" title="Swift (parallel scripting language)">Swift (parallel scripting language)</a> or <a href="/wiki/Swift_(CPU)" class="mw-redirect" title="Swift (CPU)">Swift (CPU)</a>.</div> <p class="mw-empty-elt"> </p> <style data-mw-deduplicate="TemplateStyles:r1257001546">.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme) div:not(.notheme){background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table tr{display:table-row!important}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}</style><table class="infobox vevent"><caption class="infobox-title summary">Swift</caption><tbody><tr><td colspan="2" class="infobox-image"><span typeof="mw:File"><a href="/wiki/File:Swift_logo.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/9/9d/Swift_logo.svg/200px-Swift_logo.svg.png" decoding="async" width="200" height="62" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/9/9d/Swift_logo.svg/300px-Swift_logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/9/9d/Swift_logo.svg/400px-Swift_logo.svg.png 2x" data-file-width="191" data-file-height="59" /></a></span><div class="infobox-caption">Logo</div></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Programming_paradigm" title="Programming paradigm">Paradigm</a></th><td class="infobox-data"><a href="/wiki/Multi-paradigm_programming_language" class="mw-redirect" title="Multi-paradigm programming language">Multi-paradigm</a>: <a href="/wiki/Interface_(object-oriented_programming)" title="Interface (object-oriented programming)">protocol-oriented</a>, <a href="/wiki/Object-oriented_programming" title="Object-oriented programming">object-oriented</a>, <a href="/wiki/Functional_programming" title="Functional programming">functional</a>, <a href="/wiki/Imperative_programming" title="Imperative programming">imperative</a>, <a href="/wiki/Block_(programming)" title="Block (programming)">block structured</a>, <a href="/wiki/Declarative_programming" title="Declarative programming">declarative</a>, <a href="/wiki/Concurrent_programming" class="mw-redirect" title="Concurrent programming">concurrent</a></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Software_design" title="Software design">Designed by</a></th><td class="infobox-data"><a href="/wiki/Chris_Lattner" title="Chris Lattner">Chris Lattner</a>, Doug Gregor, John McCall, Ted Kremenek, Joe Groff, and <a href="/wiki/Apple_Inc." title="Apple Inc.">Apple Inc.</a><sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Software_developer" class="mw-redirect" title="Software developer">Developer</a></th><td class="infobox-data organiser"><a href="/wiki/Apple_Inc." title="Apple Inc.">Apple Inc.</a> and open-source contributors</td></tr><tr><th scope="row" class="infobox-label">First appeared</th><td class="infobox-data">June 2, 2014<span class="noprint">; 10 years ago</span><span style="display:none"> (<span class="bday dtstart published updated">2014-06-02</span>)</span><sup id="cite_ref-version1_2-0" class="reference"><a href="#cite_note-version1-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></td></tr><tr><td colspan="2" class="infobox-full-data"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1257001546"></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Software_release_life_cycle" title="Software release life cycle">Stable release</a></th><td class="infobox-data"><div style="margin:0px;">6.0.1<sup id="cite_ref-wikidata-b072633866c970c25e0293c4e152764c1ce4b747-v18_3-0" class="reference"><a href="#cite_note-wikidata-b072633866c970c25e0293c4e152764c1ce4b747-v18-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q17118377?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> / 27 September 2024<span class="noprint">; 58 days ago</span><span style="display:none"> (<span class="bday dtstart published updated">27 September 2024</span>)</span></div></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Software_release_life_cycle#Beta" title="Software release life cycle">Preview release</a></th><td class="infobox-data"><div style="margin:0px;">6.0 </div></td></tr><tr style="display:none"><td colspan="2"> </td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Type_system" title="Type system">Typing discipline</a></th><td class="infobox-data"><a href="/wiki/Type_system#Static_type-checking" title="Type system">Static</a>, <a href="/wiki/Strong_and_weak_typing" title="Strong and weak typing">strong</a>, <a href="/wiki/Type_inference" title="Type inference">inferred</a></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Memory_management" title="Memory management">Memory management</a></th><td class="infobox-data"><a href="/wiki/Automatic_Reference_Counting" title="Automatic Reference Counting">Automatic Reference Counting</a></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Operating_system" title="Operating system">OS</a></th><td class="infobox-data">Apple's operating systems (<a href="/wiki/Darwin_(operating_system)" title="Darwin (operating system)">Darwin</a>, <a href="/wiki/IOS" title="IOS">iOS</a>, <a href="/wiki/IPadOS" title="IPadOS">iPadOS</a>, <a href="/wiki/MacOS" title="MacOS">macOS</a>, <a href="/wiki/TvOS" title="TvOS">tvOS</a>, <a href="/wiki/VisionOS" title="VisionOS">visionOS</a>, <a href="/wiki/WatchOS" title="WatchOS">watchOS</a>), <a href="/wiki/Linux" title="Linux">Linux</a>, <a href="/wiki/Windows" class="mw-redirect" title="Windows">Windows</a>, <a href="/wiki/Android_(operating_system)" title="Android (operating system)">Android</a>, <a href="/wiki/Z/OS" title="Z/OS">z/OS</a></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Software_license" title="Software license">License</a></th><td class="infobox-data"><a href="/wiki/Apache_License_2.0" class="mw-redirect" title="Apache License 2.0">Apache License 2.0</a> (Swift 2.2 and later)<br /><a href="/wiki/Proprietary_software" title="Proprietary software">Proprietary</a> (up to Swift 2.2)<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Filename_extension" title="Filename extension">Filename extensions</a></th><td class="infobox-data">.swift, .SWIFT</td></tr><tr><th scope="row" class="infobox-label">Website</th><td class="infobox-data"><style data-mw-deduplicate="TemplateStyles:r1126788409">.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}</style><div class="plainlist"> <ul><li><span class="url"><a rel="nofollow" class="external text" href="https://www.swift.org/">www<wbr />.swift<wbr />.org</a></span></li> <li><span class="url"><a rel="nofollow" class="external text" href="https://developer.apple.com/swift/">developer<wbr />.apple<wbr />.com<wbr />/swift<wbr />/</a></span></li></ul> </div></td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #eee;">Influenced by</th></tr><tr><td colspan="2" class="infobox-full-data"><a href="/wiki/Objective-C" title="Objective-C">Objective-C</a>,<sup id="cite_ref-lattner2014_6-0" class="reference"><a href="#cite_note-lattner2014-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Rust_(programming_language)" title="Rust (programming language)">Rust</a>, <a href="/wiki/Haskell" title="Haskell">Haskell</a>, <a href="/wiki/Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a>, <a href="/wiki/Python_(programming_language)" title="Python (programming language)">Python</a>, <a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a>, <a href="/wiki/CLU_(programming_language)" title="CLU (programming language)">CLU</a>,<sup id="cite_ref-lattner_2014_info_1_7-0" class="reference"><a href="#cite_note-lattner_2014_info_1-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> <a href="/wiki/D_(programming_language)" title="D (programming language)">D</a><sup id="cite_ref-Getting_the_location_of_a_caller_8-0" class="reference"><a href="#cite_note-Getting_the_location_of_a_caller-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup></td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #eee;">Influenced</th></tr><tr><td colspan="2" class="infobox-full-data"><a href="/wiki/Rust_(programming_language)" title="Rust (programming language)">Rust</a>,<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> <a href="/wiki/V_(programming_language)" title="V (programming language)">V (Vlang)</a><sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup></td></tr></tbody></table> <p><b>Swift</b> is a <a href="/wiki/High-level_programming_language" title="High-level programming language">high-level</a> <a href="/wiki/General-purpose_programming_language" title="General-purpose programming language">general-purpose</a>, <a href="/wiki/Multi-paradigm_programming_language" class="mw-redirect" title="Multi-paradigm programming language">multi-paradigm</a>, <a href="/wiki/Compiled_language" title="Compiled language">compiled</a> <a href="/wiki/Programming_language" title="Programming language">programming language</a> created by <a href="/wiki/Chris_Lattner" title="Chris Lattner">Chris Lattner</a> in 2010 for <a href="/wiki/Apple_Inc." title="Apple Inc.">Apple Inc.</a> and maintained by <a href="/wiki/Open-source-software_movement" title="Open-source-software movement">the open-source community</a>. Swift compiles to machine code and uses an <a href="/wiki/LLVM" title="LLVM">LLVM</a>-based compiler. Swift was first released in June 2014<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> and the Swift toolchain has shipped in <a href="/wiki/Xcode" title="Xcode">Xcode</a> since Xcode version 6, released in September 2014. </p><p>Apple intended Swift to support many core concepts associated with <a href="/wiki/Objective-C" title="Objective-C">Objective-C</a>, notably <a href="/wiki/Dynamic_dispatch" title="Dynamic dispatch">dynamic dispatch</a>, widespread <a href="/wiki/Late_binding" title="Late binding">late binding</a>, <a href="/wiki/Extensible_programming" title="Extensible programming">extensible programming</a>, and similar features, but in a "safer" way, making it easier to catch <a href="/wiki/Software_bug" title="Software bug">software bugs</a>; Swift has features addressing some common programming errors like <a href="/wiki/Null_pointer" title="Null pointer">null pointer</a> <a href="/wiki/Dereference_operator" class="mw-redirect" title="Dereference operator">dereferencing</a> and provides <a href="/wiki/Syntactic_sugar" title="Syntactic sugar">syntactic sugar</a> to help avoid the <a href="/wiki/Pyramid_of_doom_(programming)" title="Pyramid of doom (programming)">pyramid of doom</a>. Swift supports the concept of <a href="/wiki/Interface_(object-oriented_programming)" title="Interface (object-oriented programming)">protocol</a> extensibility, an extensibility system that can be applied to types, <a href="/wiki/Record_(computer_science)" title="Record (computer science)">structs</a>, and <a href="/wiki/Class_(computer_programming)" title="Class (computer programming)">classes</a>, which Apple promotes as a real change in programming paradigms they term "protocol-oriented programming"<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> (similar to <a href="/wiki/Trait_(computer_programming)" title="Trait (computer programming)">traits</a> and <a href="/wiki/Type_class" title="Type class">type classes</a>).<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> </p><p>Swift was introduced at Apple's <a href="/wiki/Apple_Worldwide_Developers_Conference#2010s" class="mw-redirect" title="Apple Worldwide Developers Conference">2014 Worldwide Developers Conference</a> (WWDC).<sup id="cite_ref-tnw_swift_info_1_14-0" class="reference"><a href="#cite_note-tnw_swift_info_1-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> It underwent an upgrade to version 1.2 during 2014 and a major upgrade to Swift 2 at WWDC 2015. It was initially a <a href="/wiki/Proprietary_programming_language" class="mw-redirect" title="Proprietary programming language">proprietary language</a>, but version 2.2 was made <a href="/wiki/Open-source_software" title="Open-source software">open-source software</a> under the <a href="/wiki/Apache_License" title="Apache License">Apache License</a> 2.0 on December 3, 2015, for Apple's platforms and <a href="/wiki/Linux" title="Linux">Linux</a>.<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> </p><p>Through version 3.0 the <a href="/wiki/Syntax_(programming_languages)" title="Syntax (programming languages)">syntax</a> of Swift went through significant evolution, with the core team making source stability a focus in later versions.<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> In the first quarter of 2018 Swift surpassed <a href="/wiki/Objective-C" title="Objective-C">Objective-C</a> in measured popularity.<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> </p><p>Swift 4.0, released in 2017, introduced several changes to some built-in classes and structures. Code written with previous versions of Swift can be updated using the migration functionality built into Xcode. Swift 5, released in March 2019, introduced a stable binary interface on Apple platforms, allowing the Swift runtime to be incorporated into Apple operating systems. It is source compatible with Swift 4.<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> </p><p>Swift 5.1 was officially released in September 2019. Swift 5.1 builds on the previous version of Swift 5 by extending the stable features of the language to compile-time with the introduction of module stability. The introduction of module stability makes it possible to create and share binary frameworks that will work with future releases of Swift.<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> </p><p>Swift 5.5—officially announced by Apple at the 2021 <a href="/wiki/WWDC" class="mw-redirect" title="WWDC">WWDC</a>—significantly expands language support for <a href="/wiki/Concurrency_(computer_science)" title="Concurrency (computer science)">concurrency</a> and <a href="/wiki/Asynchrony_(computer_programming)" title="Asynchrony (computer programming)">asynchronous code</a>, notably introducing a unique version of the <a href="/wiki/Actor_model" title="Actor model">actor model</a>.<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> </p><p>Swift 5.9, was released in September 2023 and includes a macro system, generic parameter packs, and ownership features like the new <code>consume</code> operator.<sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup> </p><p>Swift 5.10, was released in March 2024. This version improves the language's concurrency model, allowing for full data isolation to prevent <a href="/wiki/Data_race" class="mw-redirect" title="Data race">data races</a>. It is also the last release before Swift 6.<sup id="cite_ref-:0_24-0" class="reference"><a href="#cite_note-:0-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> Version 5.10 is currently available for macOS, Windows and for Linux.<sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup> </p><p>Swift 6 was released in September 2024.<sup id="cite_ref-26" class="reference"><a href="#cite_note-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup> </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="History">History</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=1" title="Edit section: History"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Development of Swift started in July 2010 by <a href="/wiki/Chris_Lattner" title="Chris Lattner">Chris Lattner</a>, with the eventual collaboration of many other programmers at <a href="/wiki/Apple_Inc." title="Apple Inc.">Apple</a>. Swift was motivated by the need for a replacement for Apple's earlier programming language <a href="/wiki/Objective-C" title="Objective-C">Objective-C</a>, which had been largely unchanged since the early 1980s and lacked modern language features. Swift took language ideas "from <a href="/wiki/Objective-C" title="Objective-C">Objective-C</a>, <a href="/wiki/Rust_(programming_language)" title="Rust (programming language)">Rust</a>, <a href="/wiki/Haskell" title="Haskell">Haskell</a>, <a href="/wiki/Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a>, <a href="/wiki/Python_(programming_language)" title="Python (programming language)">Python</a>, <a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a>, <a href="/wiki/CLU_(programming_language)" title="CLU (programming language)">CLU</a>, and far too many others to list".<sup id="cite_ref-lattner_2014_info_1_7-1" class="reference"><a href="#cite_note-lattner_2014_info_1-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> On June 2, 2014, the <a href="/wiki/Apple_Worldwide_Developers_Conference" class="mw-redirect" title="Apple Worldwide Developers Conference">Apple Worldwide Developers Conference</a> (WWDC) application became the first publicly released app written with Swift.<sup id="cite_ref-stateoftheplatforms_27-0" class="reference"><a href="#cite_note-stateoftheplatforms-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup> A <a href="/wiki/Software_release_life_cycle#Beta" title="Software release life cycle">beta version</a> of the <a href="/wiki/Programming_language" title="Programming language">programming language</a> was released to registered Apple developers at the conference, but the company did not promise that the final version of Swift would be <a href="/wiki/Source_code" title="Source code">source code</a> compatible with the test version. Apple planned to make source code converters available if needed for the full release.<sup id="cite_ref-stateoftheplatforms_27-1" class="reference"><a href="#cite_note-stateoftheplatforms-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup> </p><p><i>The Swift Programming Language</i>, a free 500-page manual, was also released at WWDC, and is available on the <a href="/wiki/Apple_Books" title="Apple Books">Apple Books</a> Store and the official website.<sup id="cite_ref-Apple_swift_book_28-0" class="reference"><a href="#cite_note-Apple_swift_book-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup> </p><p>Swift reached the 1.0 milestone on September 9, 2014, with the <i>Gold Master</i> of <a href="/wiki/Xcode" title="Xcode">Xcode</a> 6.0 for <a href="/wiki/IOS" title="IOS">iOS</a>.<sup id="cite_ref-Swift_Blog_29-0" class="reference"><a href="#cite_note-Swift_Blog-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup> Swift 1.1 was released on October 22, 2014, alongside the launch of Xcode 6.1.<sup id="cite_ref-Xcode_6.1_release_notes_30-0" class="reference"><a href="#cite_note-Xcode_6.1_release_notes-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup> Swift 1.2 was released on April 8, 2015, along with Xcode 6.3.<sup id="cite_ref-Xcode_6.3_release_notes_31-0" class="reference"><a href="#cite_note-Xcode_6.3_release_notes-31"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup> Swift 2.0 was announced at WWDC 2015, and was made available for publishing apps in the App Store on September 21, 2015.<sup id="cite_ref-32" class="reference"><a href="#cite_note-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup> Swift 3.0 was released on September 13, 2016.<sup id="cite_ref-33" class="reference"><a href="#cite_note-33"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup> Swift 4.0 was released on September 19, 2017.<sup id="cite_ref-34" class="reference"><a href="#cite_note-34"><span class="cite-bracket">[</span>34<span class="cite-bracket">]</span></a></sup> Swift 4.1 was released on March 29, 2018.<sup id="cite_ref-35" class="reference"><a href="#cite_note-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup> </p><p>Swift won first place for <i>Most Loved Programming Language</i> in the <a href="/wiki/Stack_Overflow" title="Stack Overflow">Stack Overflow</a> Developer Survey 2015<sup id="cite_ref-Stack_Overflow_Developer_Survey_Results_2015_36-0" class="reference"><a href="#cite_note-Stack_Overflow_Developer_Survey_Results_2015-36"><span class="cite-bracket">[</span>36<span class="cite-bracket">]</span></a></sup> and second place in 2016.<sup id="cite_ref-Stack_Overflow_Developer_Survey_Results_2016_37-0" class="reference"><a href="#cite_note-Stack_Overflow_Developer_Survey_Results_2016-37"><span class="cite-bracket">[</span>37<span class="cite-bracket">]</span></a></sup> </p><p>On December 3, 2015, the Swift language, supporting libraries, debugger, and package manager were open-sourced under the Apache 2.0 license with a Runtime Library Exception,<sup id="cite_ref-38" class="reference"><a href="#cite_note-38"><span class="cite-bracket">[</span>38<span class="cite-bracket">]</span></a></sup> and <a rel="nofollow" class="external text" href="https://swift.org">Swift.org</a> was created to host the project. The source code is hosted on <a rel="nofollow" class="external text" href="https://github.com/swiftlang/swift">GitHub</a>, where it is easy for anyone to get the code, build it themselves, and even create pull requests to contribute code back to the project. </p><p>In December 2015, <a href="/wiki/IBM" title="IBM">IBM</a> announced its Swift Sandbox website, which allows developers to write Swift code in one pane and display output in another.<sup id="cite_ref-39" class="reference"><a href="#cite_note-39"><span class="cite-bracket">[</span>39<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-40" class="reference"><a href="#cite_note-40"><span class="cite-bracket">[</span>40<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-41" class="reference"><a href="#cite_note-41"><span class="cite-bracket">[</span>41<span class="cite-bracket">]</span></a></sup> The Swift Sandbox was deprecated in January 2018.<sup id="cite_ref-42" class="reference"><a href="#cite_note-42"><span class="cite-bracket">[</span>42<span class="cite-bracket">]</span></a></sup> </p><p>During the <a href="/wiki/Apple_Worldwide_Developers_Conference#2010s" class="mw-redirect" title="Apple Worldwide Developers Conference">WWDC 2016</a>, Apple announced an <a href="/wiki/IPad" title="IPad">iPad</a> exclusive <a href="/wiki/Mobile_app" title="Mobile app">app</a>, named <a href="/wiki/Swift_Playgrounds" title="Swift Playgrounds">Swift Playgrounds</a>, intended to teach people how to code in Swift. The app is presented in a <a href="/wiki/Video_game_graphics#3D" title="Video game graphics">3D video game-like</a> interface which provides feedback when lines of code are placed in a certain order and executed.<sup id="cite_ref-43" class="reference"><a href="#cite_note-43"><span class="cite-bracket">[</span>43<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-44" class="reference"><a href="#cite_note-44"><span class="cite-bracket">[</span>44<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-45" class="reference"><a href="#cite_note-45"><span class="cite-bracket">[</span>45<span class="cite-bracket">]</span></a></sup> </p><p>In January 2017, Chris Lattner announced his departure from Apple for a new position with <a href="/wiki/Tesla_Motors" class="mw-redirect" title="Tesla Motors">Tesla Motors</a>, with the Swift project lead role going to team veteran Ted Kremenek.<sup id="cite_ref-46" class="reference"><a href="#cite_note-46"><span class="cite-bracket">[</span>46<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-47" class="reference"><a href="#cite_note-47"><span class="cite-bracket">[</span>47<span class="cite-bracket">]</span></a></sup> </p><p>During WWDC 2019, Apple announced <a href="/wiki/SwiftUI" title="SwiftUI">SwiftUI</a> with Xcode 11, which provides a framework for <a href="/wiki/Declarative_programming" title="Declarative programming">declarative</a> UI structure design across all Apple platforms.<sup id="cite_ref-48" class="reference"><a href="#cite_note-48"><span class="cite-bracket">[</span>48<span class="cite-bracket">]</span></a></sup> </p><p>Official downloads of the SDK and toolchain for the <a href="/wiki/Ubuntu" title="Ubuntu">Ubuntu</a> distribution of Linux have been available since Swift 2.2, with more distros added since Swift 5.2.4, <a href="/wiki/CentOS" title="CentOS">CentOS</a> and Amazon Linux.<sup id="cite_ref-49" class="reference"><a href="#cite_note-49"><span class="cite-bracket">[</span>49<span class="cite-bracket">]</span></a></sup> There is an unofficial SDK and native toolchain package for Android too.<sup id="cite_ref-50" class="reference"><a href="#cite_note-50"><span class="cite-bracket">[</span>50<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-51" class="reference"><a href="#cite_note-51"><span class="cite-bracket">[</span>51<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Platforms">Platforms</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=2" title="Edit section: Platforms"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The platforms Swift supports are Apple's operating systems (<a href="/wiki/Darwin_(operating_system)" title="Darwin (operating system)">Darwin</a>, <a href="/wiki/IOS" title="IOS">iOS</a>, <a href="/wiki/IPadOS" title="IPadOS">iPadOS</a>, <a href="/wiki/MacOS" title="MacOS">macOS</a>, <a href="/wiki/TvOS" title="TvOS">tvOS</a>, <a href="/wiki/WatchOS" title="WatchOS">watchOS</a>), <a href="/wiki/Linux" title="Linux">Linux</a>, <a href="/wiki/Windows" class="mw-redirect" title="Windows">Windows</a>, and <a href="/wiki/Android_(operating_system)" title="Android (operating system)">Android</a>.<sup id="cite_ref-Swift_Android_Toolchain_52-0" class="reference"><a href="#cite_note-Swift_Android_Toolchain-52"><span class="cite-bracket">[</span>52<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Swift_for_Windows_53-0" class="reference"><a href="#cite_note-Swift_for_Windows-53"><span class="cite-bracket">[</span>53<span class="cite-bracket">]</span></a></sup> </p><p>A key aspect of Swift's design is its ability to interoperate with the huge body of existing Objective-C code developed for Apple products over the previous decades, such as <a href="/wiki/Cocoa_(API)" title="Cocoa (API)">Cocoa</a> and the <a href="/wiki/Cocoa_Touch" class="mw-redirect" title="Cocoa Touch">Cocoa Touch</a> <a href="/wiki/Software_framework" title="Software framework">frameworks</a>. On Apple platforms,<sup id="cite_ref-54" class="reference"><a href="#cite_note-54"><span class="cite-bracket">[</span>54<span class="cite-bracket">]</span></a></sup> it links with the Objective-C <a href="/wiki/Runtime_library" title="Runtime library">runtime library</a>, which allows <a href="/wiki/C_(programming_language)" title="C (programming language)">C</a>, <a href="/wiki/Objective-C" title="Objective-C">Objective-C</a>, <a href="/wiki/C%2B%2B" title="C++">C++</a> and Swift code to run within one program.<sup id="cite_ref-55" class="reference"><a href="#cite_note-55"><span class="cite-bracket">[</span>55<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Version_history">Version history</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=3" title="Edit section: Version history"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable sortable" style="font-size: 85%; width: auto;"> <tbody><tr> <th>Swift<br />version </th> <th>Release date </th> <th><a href="/wiki/MacOS" title="MacOS">macOS</a> </th> <th><a href="/wiki/Linux" title="Linux">Linux</a> </th> <th><a href="/wiki/Windows" class="mw-redirect" title="Windows">Windows</a> </th></tr> <tr> <td>1.0 </td> <td>September 9, 2014 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>1.1 </td> <td>October 22, 2014 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>1.2 </td> <td>April 8, 2015 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>2.0 </td> <td>September 21, 2015 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>2.1 </td> <td>October 20, 2015 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>2.2 </td> <td>March 21, 2016 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>2.2.1 </td> <td>May 3, 2016 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>3.0 </td> <td>September 13, 2016 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>3.0.1 </td> <td>October 28, 2016 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>3.0.2 </td> <td>December 13, 2016 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>3.1 </td> <td>March 27, 2017 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>3.1.1 </td> <td>April 21, 2017 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>4.0 </td> <td>September 19, 2017 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>4.0.2 </td> <td>November 1, 2017 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>4.0.3 </td> <td>December 5, 2017 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>4.1 </td> <td>March 29, 2018 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>4.1.1 </td> <td>May 4, 2018 </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>4.1.2 </td> <td>May 31, 2018 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>4.1.3 </td> <td>July 27, 2018 </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>4.2 </td> <td>September 17, 2018 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>4.2.1 </td> <td>October 30, 2018 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>4.2.2 </td> <td>February 4, 2019 </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>4.2.3 </td> <td>February 28, 2019 </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>4.2.4 </td> <td>March 29, 2019 </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>5.0<sup id="cite_ref-56" class="reference"><a href="#cite_note-56"><span class="cite-bracket">[</span>56<span class="cite-bracket">]</span></a></sup> </td> <td>March 25, 2019 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>5.0.1 </td> <td>April 18, 2019 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>5.0.2 </td> <td>July 15, 2019 </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>5.0.3 </td> <td>August 30, 2019 </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>5.1 </td> <td>September 10, 2019 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>5.1.1 </td> <td>October 11, 2019 </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>5.1.2 </td> <td>November 7, 2019 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>5.1.3 </td> <td>December 13, 2019 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>5.1.4 </td> <td>January 31, 2020 </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>5.1.5 </td> <td>March 9, 2020 </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>5.2 </td> <td>March 24, 2020 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>5.2.1 </td> <td>March 30, 2020 </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>5.2.2 </td> <td>April 15, 2020 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>5.2.3 </td> <td>April 29, 2020 </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>5.2.4 </td> <td>May 20, 2020 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>5.2.5 </td> <td>August 5, 2020 </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <td>5.3 </td> <td>September 16, 2020 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes<sup id="cite_ref-57" class="reference"><a href="#cite_note-57"><span class="cite-bracket">[</span>57<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>5.3.1 </td> <td>November 13, 2020 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.3.2 </td> <td>December 15, 2020 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.3.3 </td> <td>January 25, 2021 </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.4<sup id="cite_ref-58" class="reference"><a href="#cite_note-58"><span class="cite-bracket">[</span>58<span class="cite-bracket">]</span></a></sup> </td> <td>April 26, 2021 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.4.1 </td> <td>May 25, 2021 </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.4.2 </td> <td>June 28, 2021 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.4.3 </td> <td>September 9, 2021 </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.5 </td> <td>September 20, 2021 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.5.1 </td> <td>October 27, 2021 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.5.2 </td> <td>December 14, 2021 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.5.3 </td> <td>February 9, 2022 </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.6<sup id="cite_ref-59" class="reference"><a href="#cite_note-59"><span class="cite-bracket">[</span>59<span class="cite-bracket">]</span></a></sup> </td> <td>March 14, 2022 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.6.1<sup id="cite_ref-60" class="reference"><a href="#cite_note-60"><span class="cite-bracket">[</span>60<span class="cite-bracket">]</span></a></sup> </td> <td>April 9, 2022 </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.6.2<sup id="cite_ref-61" class="reference"><a href="#cite_note-61"><span class="cite-bracket">[</span>61<span class="cite-bracket">]</span></a></sup> </td> <td>June 15, 2022 </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.6.3<sup id="cite_ref-62" class="reference"><a href="#cite_note-62"><span class="cite-bracket">[</span>62<span class="cite-bracket">]</span></a></sup> </td> <td>September 2, 2022 </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.7<sup id="cite_ref-63" class="reference"><a href="#cite_note-63"><span class="cite-bracket">[</span>63<span class="cite-bracket">]</span></a></sup> </td> <td>September 12, 2022 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.7.1<sup id="cite_ref-64" class="reference"><a href="#cite_note-64"><span class="cite-bracket">[</span>64<span class="cite-bracket">]</span></a></sup> </td> <td>November 1, 2022 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.8<sup id="cite_ref-65" class="reference"><a href="#cite_note-65"><span class="cite-bracket">[</span>65<span class="cite-bracket">]</span></a></sup> </td> <td>March 30, 2023 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.8.1<sup id="cite_ref-66" class="reference"><a href="#cite_note-66"><span class="cite-bracket">[</span>66<span class="cite-bracket">]</span></a></sup> </td> <td>June 1, 2023 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.9<sup id="cite_ref-67" class="reference"><a href="#cite_note-67"><span class="cite-bracket">[</span>67<span class="cite-bracket">]</span></a></sup> </td> <td>September 18, 2023 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.9.1<sup id="cite_ref-68" class="reference"><a href="#cite_note-68"><span class="cite-bracket">[</span>68<span class="cite-bracket">]</span></a></sup> </td> <td>October 19, 2023 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.9.2<sup id="cite_ref-69" class="reference"><a href="#cite_note-69"><span class="cite-bracket">[</span>69<span class="cite-bracket">]</span></a></sup> </td> <td>December 11, 2023 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.10<sup id="cite_ref-:0_24-1" class="reference"><a href="#cite_note-:0-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> </td> <td>March 5, 2024 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>5.10.1<sup id="cite_ref-70" class="reference"><a href="#cite_note-70"><span class="cite-bracket">[</span>70<span class="cite-bracket">]</span></a></sup> </td> <td>June 5, 2024 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <td>6.0<sup id="cite_ref-71" class="reference"><a href="#cite_note-71"><span class="cite-bracket">[</span>71<span class="cite-bracket">]</span></a></sup> </td> <td>September 16, 2024 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr></tbody></table> <div class="mw-heading mw-heading2"><h2 id="Features">Features</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=4" title="Edit section: Features"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1251242444">.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}</style><table class="box-Technical plainlinks metadata ambox ambox-style ambox-technical" role="presentation"><tbody><tr><td class="mbox-image"><div class="mbox-image-div"><span typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/f/f2/Edit-clear.svg/40px-Edit-clear.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/f/f2/Edit-clear.svg/60px-Edit-clear.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/f/f2/Edit-clear.svg/80px-Edit-clear.svg.png 2x" data-file-width="48" data-file-height="48" /></span></span></div></td><td class="mbox-text"><div class="mbox-text-span">This section <b>may be too technical for most readers to understand</b>.<span class="hide-when-compact"> Please <a class="external text" href="https://en.wikipedia.org/w/index.php?title=Swift_(programming_language)&action=edit">help improve it</a> to <a href="/wiki/Wikipedia:Make_technical_articles_understandable" title="Wikipedia:Make technical articles understandable">make it understandable to non-experts</a>, without removing the technical details.</span> <span class="date-container"><i>(<span class="date">June 2018</span>)</i></span><span class="hide-when-compact"><i> (<small><a href="/wiki/Help:Maintenance_template_removal" title="Help:Maintenance template removal">Learn how and when to remove this message</a></small>)</i></span></div></td></tr></tbody></table> <p>Swift is a general purpose programming language that employs modern programming-language theory concepts and strives to present a simple, yet powerful syntax. Swift incorporates innovations and conventions from various programming languages, with notable inspiration from Objective-C, which it replaced as the primary development language on Apple Platforms. </p><p>Swift was designed to be safe and friendly to new programmers while not sacrificing speed. By default Swift manages all memory automatically and ensures variables are always initialized before use. Array accesses are checked for out-of-bounds errors and integer operations are checked for overflow. Parameter names allow creating clear APIs. Protocols define interfaces that types may adopt, while extensions allow developers to add more function to existing types. Swift enables <a href="/wiki/Object-oriented_programming" title="Object-oriented programming">object-oriented programming</a> with the support for <a href="/wiki/Class_(computer_programming)" title="Class (computer programming)">classes</a>, <a href="/wiki/Subtyping" title="Subtyping">subtyping</a>, and <a href="/wiki/Method_overriding" title="Method overriding">method overriding</a>. Optionals allow <a href="/wiki/Null_pointer" title="Null pointer">nil</a> values to be handled explicitly and safely. Concurrent programs can be written using <a href="/wiki/Async/await" title="Async/await">async/await</a> syntax and <a href="/wiki/Actor_model" title="Actor model">actors</a> isolate shared mutable state in order to eliminate data races.<sup id="cite_ref-72" class="reference"><a href="#cite_note-72"><span class="cite-bracket">[</span>72<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Eliminate_data_races_using_Swift_Concurrency_73-0" class="reference"><a href="#cite_note-Eliminate_data_races_using_Swift_Concurrency-73"><span class="cite-bracket">[</span>73<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Basic_syntax">Basic syntax</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=5" title="Edit section: Basic syntax"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Swift's <a href="/wiki/Syntax_(programming_languages)" title="Syntax (programming languages)">syntax</a> is similar to C-style languages. Code begins executing in the global scope by default.<sup id="cite_ref-Documentation_74-0" class="reference"><a href="#cite_note-Documentation-74"><span class="cite-bracket">[</span>74<span class="cite-bracket">]</span></a></sup> Alternatively, the <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="p">@</span><span class="n">main</span></code> attribute can be applied a structure, class, or enumeration declaration to indicate that it contains the program's entry point.<sup id="cite_ref-75" class="reference"><a href="#cite_note-75"><span class="cite-bracket">[</span>75<span class="cite-bracket">]</span></a></sup> </p><p> Swift's <a href="/wiki/%22Hello,_World!%22_program" title=""Hello, World!" program">"Hello, World!" program</a> is:</p><div class="mw-highlight mw-highlight-lang-swift mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="bp">print</span><span class="p">(</span><span class="s">"Hello, world!"</span><span class="p">)</span> </pre></div><p>The <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="bp">print</span><span class="p">(</span><span class="kc">_</span><span class="p">:</span><span class="n">separator</span><span class="p">:</span><span class="n">terminator</span><span class="p">:)</span></code> function used here is included in Swift's standard library, which is available to all programs without the need to import external modules. Statements in Swift don't have to end with a semicolon, however semicolons are required to separate multiple statements written on the same line. Single-line <a href="/wiki/Comment_(computer_programming)" title="Comment (computer programming)">comments</a> begin with <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="c1">//</span></code> and continue until the end of the current line. Multiline comments are contained by <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="cm">/*</span></code> and <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="o">*/</span></code> characters. Constants are declared with the <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="kd">let</span></code> keyword and variables with the <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="kd">var</span></code> keyword. Values must be initialized before they are read. Values may infer their type based on the type of the provided initial value. If the initial value is set after the value's declaration, a type must be declared explicitly.<sup id="cite_ref-Documentation_74-1" class="reference"><a href="#cite_note-Documentation-74"><span class="cite-bracket">[</span>74<span class="cite-bracket">]</span></a></sup></p><div class="mw-highlight mw-highlight-lang-swift mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="kd">let</span> <span class="nv">highScoreThreshold</span> <span class="p">=</span> <span class="mi">1000</span> <span class="c1">// A constant with type Int. The type was inferred based on the provided value.</span> <span class="linenos" data-line="2"></span> <span class="linenos" data-line="3"></span><span class="kd">var</span> <span class="nv">currentScore</span> <span class="p">=</span> <span class="mi">980</span> <span class="c1">// A variable with type Int.</span> <span class="linenos" data-line="4"></span><span class="n">currentScore</span> <span class="p">=</span> <span class="mi">1200</span> <span class="c1">// The value of variables can change over time.</span> <span class="linenos" data-line="5"></span> <span class="linenos" data-line="6"></span><span class="kd">let</span> <span class="nv">playerMessage</span><span class="p">:</span> <span class="nb">String</span> <span class="c1">// A constant with explicit type String.</span> <span class="linenos" data-line="7"></span><span class="k">if</span> <span class="n">currentScore</span> <span class="o">></span> <span class="n">highScoreThreshold</span> <span class="p">{</span> <span class="linenos" data-line="8"></span> <span class="n">playerMessage</span> <span class="p">=</span> <span class="s">"You are a top player!"</span> <span class="linenos" data-line="9"></span><span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="linenos" data-line="10"></span> <span class="n">playerMessage</span> <span class="p">=</span> <span class="s">"Better luck next time."</span> <span class="linenos" data-line="11"></span><span class="p">}</span> <span class="linenos" data-line="12"></span> <span class="linenos" data-line="13"></span><span class="bp">print</span><span class="p">(</span><span class="n">playerMessage</span><span class="p">)</span> <span class="c1">// Prints "You are a top player!"</span> </pre></div><p>Control flow in Swift is managed with <a href="/wiki/If_statement" class="mw-redirect" title="If statement">if-else</a>, <a href="/wiki/Guard_statement" class="mw-redirect" title="Guard statement">guard</a>, and <a href="/wiki/Switch_statement" title="Switch statement">switch</a> statements, along with <a href="/wiki/While_loop" title="While loop">while</a> and <a href="/wiki/For_loop" title="For loop">for-in loops</a>. The <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="k">if</span></code> statements take a Boolean parameter and execute the body of the <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="k">if</span></code> statement if the condition is true, otherwise it executes the optional <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="k">else</span></code> body. <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="k">if</span><span class="o">-</span><span class="kd">let</span></code> syntax provides syntactic sugar for checking for the existence of an optional value and unwrapping it at the same time.</p><div class="mw-highlight mw-highlight-lang-swift mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="kd">let</span> <span class="nv">someNumber</span> <span class="p">=</span> <span class="mi">42</span> <span class="linenos" data-line="2"></span><span class="k">if</span> <span class="n">someNumber</span> <span class="o">%</span> <span class="mi">2</span> <span class="p">==</span> <span class="mi">0</span> <span class="p">{</span> <span class="c1">// Use the remainder operator to find the remainder of someNumber divided by 2.</span> <span class="linenos" data-line="3"></span> <span class="bp">print</span><span class="p">(</span><span class="s">"</span><span class="si">\(</span><span class="n">someNumber</span><span class="si">)</span><span class="s"> is even."</span><span class="p">)</span> <span class="linenos" data-line="4"></span><span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="linenos" data-line="5"></span> <span class="bp">print</span><span class="p">(</span><span class="s">"</span><span class="si">\(</span><span class="n">someNumber</span><span class="si">)</span><span class="s"> is odd."</span><span class="p">)</span> <span class="linenos" data-line="6"></span><span class="p">}</span> <span class="linenos" data-line="7"></span> <span class="linenos" data-line="8"></span><span class="c1">// Prints "42 is even."</span> </pre></div><p>Functions are defined with the <code><code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="kd">func</span></code></code> keyword. Function parameters may have names which allow function calls to read like phrases. An underscore before the parameter name allows the argument label to be omitted from the call site. <a href="/wiki/Tuple" title="Tuple">Tuples</a> can be used by functions to return multiple pieces of data at once.</p><div class="mw-highlight mw-highlight-lang-swift mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="kd">func</span> <span class="nf">constructGreeting</span><span class="p">(</span><span class="k">for</span> <span class="n">name</span><span class="p">:</span> <span class="nb">String</span><span class="p">)</span> <span class="p">-></span> <span class="nb">String</span> <span class="p">{</span> <span class="linenos" data-line="2"></span> <span class="k">return</span> <span class="s">"Hello </span><span class="si">\(</span><span class="n">name</span><span class="si">)</span><span class="s">!"</span> <span class="linenos" data-line="3"></span><span class="p">}</span> <span class="linenos" data-line="4"></span> <span class="linenos" data-line="5"></span><span class="kd">let</span> <span class="nv">greeting</span> <span class="p">=</span> <span class="n">constructGreeting</span><span class="p">(</span><span class="k">for</span><span class="p">:</span> <span class="s">"Craig"</span><span class="p">)</span> <span class="linenos" data-line="6"></span> <span class="linenos" data-line="7"></span><span class="bp">print</span><span class="p">(</span><span class="n">greeting</span><span class="p">)</span> <span class="c1">// Prints "Hello Craig!"</span> </pre></div><p>Functions, and anonymous functions known as <a href="/wiki/Closure_(computer_programming)" title="Closure (computer programming)">closures</a>, can be assigned to properties and passed around the program like any other value.</p><div class="mw-highlight mw-highlight-lang-swift mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="kd">func</span> <span class="nf">divideByTwo</span><span class="p">(</span><span class="kc">_</span> <span class="n">aNum</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="nb">Int</span> <span class="p">{</span> <span class="linenos" data-line="2"></span> <span class="k">return</span> <span class="n">aNum</span> <span class="o">/</span> <span class="mi">2</span> <span class="linenos" data-line="3"></span><span class="p">}</span> <span class="linenos" data-line="4"></span> <span class="linenos" data-line="5"></span><span class="kd">func</span> <span class="nf">multiplyByTwo</span><span class="p">(</span><span class="kc">_</span> <span class="n">aNum</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="nb">Int</span> <span class="p">{</span> <span class="linenos" data-line="6"></span> <span class="k">return</span> <span class="n">aNum</span> <span class="o">*</span> <span class="mi">2</span> <span class="linenos" data-line="7"></span><span class="p">}</span> <span class="linenos" data-line="8"></span> <span class="linenos" data-line="9"></span><span class="kd">let</span> <span class="nv">mathOperation</span> <span class="p">=</span> <span class="n">multiplyByTwo</span> <span class="linenos" data-line="10"></span> <span class="linenos" data-line="11"></span><span class="bp">print</span><span class="p">(</span><span class="n">mathOperation</span><span class="p">(</span><span class="mi">21</span><span class="p">))</span> <span class="c1">// Prints "42"</span> </pre></div><p><code><code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="k">guard</span></code></code> statements require that the given condition is true before continuing on past the <code><code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="k">guard</span></code></code> statement, otherwise the body of the provided <code><code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="k">else</span></code></code> clause is run. The <code><code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="k">else</span></code></code> clause must exit control of the code block in which the <code><code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="k">guard</span></code></code> statement appears. <code><code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="k">guard</span></code></code> statements are useful for ensuring that certain requirements are met before continuing on with program execution. In particular they can be used to create an unwrapped version of an optional value that is guaranteed to be non-nil for the remainder of the enclosing scope.</p><div class="mw-highlight mw-highlight-lang-swift mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="kd">func</span> <span class="nf">divide</span><span class="p">(</span><span class="n">numerator</span><span class="p">:</span> <span class="nb">Int</span><span class="p">?,</span> <span class="n">byDenominator</span> <span class="n">denominator</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="nb">Int</span><span class="p">?</span> <span class="p">{</span> <span class="linenos" data-line="2"></span> <span class="k">guard</span> <span class="n">denominator</span> <span class="o">!=</span> <span class="mi">0</span> <span class="k">else</span> <span class="p">{</span> <span class="linenos" data-line="3"></span> <span class="bp">print</span><span class="p">(</span><span class="s">"Can't divide by 0."</span><span class="p">)</span> <span class="linenos" data-line="4"></span> <span class="k">return</span> <span class="kc">nil</span> <span class="linenos" data-line="5"></span> <span class="p">}</span> <span class="linenos" data-line="6"></span> <span class="linenos" data-line="7"></span> <span class="k">guard</span> <span class="kd">let</span> <span class="nv">numerator</span> <span class="k">else</span> <span class="p">{</span> <span class="linenos" data-line="8"></span> <span class="bp">print</span><span class="p">(</span><span class="s">"The provided numerator is nil."</span><span class="p">)</span> <span class="linenos" data-line="9"></span> <span class="k">return</span> <span class="kc">nil</span> <span class="linenos" data-line="10"></span> <span class="p">}</span> <span class="linenos" data-line="11"></span> <span class="linenos" data-line="12"></span> <span class="k">return</span> <span class="n">numerator</span> <span class="o">/</span> <span class="n">denominator</span> <span class="linenos" data-line="13"></span><span class="p">}</span> <span class="linenos" data-line="14"></span> <span class="linenos" data-line="15"></span><span class="kd">let</span> <span class="nv">result</span> <span class="p">=</span> <span class="n">divide</span><span class="p">(</span><span class="n">numerator</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="n">byDenominator</span><span class="p">:</span> <span class="mi">0</span><span class="p">)</span> <span class="linenos" data-line="16"></span><span class="bp">print</span><span class="p">(</span><span class="s">"Division result is: </span><span class="si">\(</span><span class="n">result</span><span class="si">)</span><span class="s">"</span><span class="p">)</span> <span class="linenos" data-line="17"></span> <span class="linenos" data-line="18"></span><span class="c1">// Prints:</span> <span class="linenos" data-line="19"></span><span class="c1">// "Can't divide by 0."</span> <span class="linenos" data-line="20"></span><span class="c1">// "Division result is: nil."</span> </pre></div><p><code><a href="/wiki/Switch_statement" title="Switch statement">switch</a></code> statements compare a value with multiple potential values and then executes an associated code block. <code>switch</code> statements must be made exhaustive, either by including cases for all possible values or by including a <code>default</code> case which is run when the provided value doesn't match any of the other cases. <code>switch</code> cases do not implicitly fall through, although they may explicitly do so with the <code>fallthrough</code> keyword. <a href="/wiki/Pattern_matching" title="Pattern matching">Pattern matching</a> can be used in various ways inside <code>switch</code> statements. Here is an example of an integer being matched against a number of potential ranges:</p><div class="mw-highlight mw-highlight-lang-swift mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="kd">let</span> <span class="nv">someNumber</span> <span class="p">=</span> <span class="mi">42</span> <span class="linenos" data-line="2"></span> <span class="linenos" data-line="3"></span><span class="k">switch</span> <span class="n">someNumber</span> <span class="p">{</span> <span class="linenos" data-line="4"></span><span class="k">case</span> <span class="p">..<</span><span class="mi">0</span><span class="p">:</span> <span class="linenos" data-line="5"></span> <span class="bp">print</span><span class="p">(</span><span class="s">"</span><span class="si">\(</span><span class="n">someNumber</span><span class="si">)</span><span class="s"> negative."</span><span class="p">)</span> <span class="linenos" data-line="6"></span><span class="k">case</span> <span class="mi">0</span><span class="p">:</span> <span class="linenos" data-line="7"></span> <span class="bp">print</span><span class="p">(</span><span class="s">"</span><span class="si">\(</span><span class="n">someNumber</span><span class="si">)</span><span class="s"> is 0."</span><span class="p">)</span> <span class="linenos" data-line="8"></span><span class="k">case</span> <span class="mf">1.</span><span class="p">..</span><span class="mi">9</span><span class="p">:</span> <span class="linenos" data-line="9"></span> <span class="bp">print</span><span class="p">(</span><span class="s">"</span><span class="si">\(</span><span class="n">someNumber</span><span class="si">)</span><span class="s"> greater than 0, but less than 10."</span><span class="p">)</span> <span class="linenos" data-line="10"></span><span class="k">default</span><span class="p">:</span> <span class="linenos" data-line="11"></span> <span class="bp">print</span><span class="p">(</span><span class="s">"</span><span class="si">\(</span><span class="n">someNumber</span><span class="si">)</span><span class="s"> is greater than 9."</span><span class="p">)</span> <span class="linenos" data-line="12"></span><span class="p">}</span> <span class="linenos" data-line="13"></span> <span class="linenos" data-line="14"></span><span class="c1">// Prints "42 is greater than 9."</span> </pre></div><p><code>for-in</code> loops iterate over a sequence of values:</p><div class="mw-highlight mw-highlight-lang-swift mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="kd">let</span> <span class="nv">names</span> <span class="p">=</span> <span class="p">[</span><span class="s">"Will"</span><span class="p">,</span> <span class="s">"Anna"</span><span class="p">,</span> <span class="s">"Bart"</span><span class="p">]</span> <span class="linenos" data-line="2"></span><span class="k">for</span> <span class="n">name</span> <span class="k">in</span> <span class="n">names</span> <span class="p">{</span> <span class="linenos" data-line="3"></span> <span class="bp">print</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="linenos" data-line="4"></span><span class="p">}</span> <span class="linenos" data-line="5"></span><span class="c1">// Prints:</span> <span class="linenos" data-line="6"></span><span class="c1">// Will</span> <span class="linenos" data-line="7"></span><span class="c1">// Anna</span> <span class="linenos" data-line="8"></span><span class="c1">// Bart</span> </pre></div><p><code><a href="/wiki/While_loop" title="While loop">while</a></code> loops iterate as long as the given Boolean condition evaluates to <code>true</code>:</p><div class="mw-highlight mw-highlight-lang-swift mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="c1">// Add together all the numbers from 1 to 5.</span> <span class="linenos" data-line="2"></span><span class="kd">var</span> <span class="nv">i</span> <span class="p">=</span> <span class="mi">1</span> <span class="linenos" data-line="3"></span><span class="kd">var</span> <span class="nv">result</span> <span class="p">=</span> <span class="mi">0</span> <span class="linenos" data-line="4"></span> <span class="linenos" data-line="5"></span><span class="k">while</span> <span class="n">i</span> <span class="o"><=</span> <span class="mi">5</span> <span class="p">{</span> <span class="c1">// The loop performs its body as long as i is less than or equal to 5. </span> <span class="linenos" data-line="6"></span> <span class="n">result</span> <span class="o">+=</span> <span class="n">i</span> <span class="c1">// Add i to the current result.</span> <span class="linenos" data-line="7"></span> <span class="n">i</span> <span class="o">+=</span> <span class="mi">1</span> <span class="c1">// Increment i by 1.</span> <span class="linenos" data-line="8"></span><span class="p">}</span> <span class="linenos" data-line="9"></span> <span class="linenos" data-line="10"></span><span class="bp">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span> <span class="c1">// Prints "15"</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="Closure_support">Closure support</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=6" title="Edit section: Closure support"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Swift supports <a href="/wiki/Closure_(computer_programming)" title="Closure (computer programming)">closures</a>, which are self-contained blocks of functionality that can be passed around and used in code,<sup id="cite_ref-76" class="reference"><a href="#cite_note-76"><span class="cite-bracket">[</span>76<span class="cite-bracket">]</span></a></sup> and can also be used as <a href="/wiki/Anonymous_function" title="Anonymous function">anonymous functions</a>. Here are some examples: </p> <div class="mw-highlight mw-highlight-lang-swift mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="c1">// Closure type, defined by its input and output values, can be specified outside the closure:</span> <span class="linenos" data-line="2"></span><span class="kd">let</span> <span class="nv">closure1</span><span class="p">:</span> <span class="p">(</span><span class="nb">Int</span><span class="p">,</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="nb">Int</span> <span class="p">=</span> <span class="p">{</span> <span class="n">arg1</span><span class="p">,</span> <span class="n">arg2</span> <span class="k">in</span> <span class="linenos" data-line="3"></span> <span class="k">return</span> <span class="n">arg1</span> <span class="o">+</span> <span class="n">arg2</span> <span class="linenos" data-line="4"></span><span class="p">}</span> <span class="linenos" data-line="5"></span> <span class="linenos" data-line="6"></span><span class="c1">// …or inside it:</span> <span class="linenos" data-line="7"></span><span class="kd">let</span> <span class="nv">closure2</span> <span class="p">=</span> <span class="p">{</span> <span class="p">(</span><span class="n">arg1</span><span class="p">:</span> <span class="nb">Int</span><span class="p">,</span> <span class="n">arg2</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="nb">Int</span> <span class="k">in</span> <span class="linenos" data-line="8"></span> <span class="k">return</span> <span class="n">arg1</span> <span class="o">+</span> <span class="n">arg2</span> <span class="linenos" data-line="9"></span><span class="p">}</span> <span class="linenos" data-line="10"></span> <span class="linenos" data-line="11"></span><span class="c1">// In most cases, closure's return type can be inferred automatically by the compiler.</span> <span class="linenos" data-line="12"></span><span class="kd">let</span> <span class="nv">closure3</span> <span class="p">=</span> <span class="p">{</span> <span class="n">arg1</span><span class="p">:</span> <span class="nb">Int</span><span class="p">,</span> <span class="n">arg2</span><span class="p">:</span> <span class="nb">Int</span> <span class="k">in</span> <span class="linenos" data-line="13"></span> <span class="k">return</span> <span class="n">arg1</span> <span class="o">+</span> <span class="n">arg2</span> <span class="linenos" data-line="14"></span><span class="p">}</span> </pre></div> <p>Closures can be assigned to variables and constants, and can be passed into other functions or closures as parameters. Single-expression closures may drop the <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="k">return</span></code> keyword. </p><p>Swift also has a trailing closure syntax, which allows the closure to be written after the end of the function call instead of within the function's parameter list. Parentheses can be omitted altogether if the closure is the function's only parameter: </p> <div class="mw-highlight mw-highlight-lang-swift mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="c1">// This function takes a closure which receives no input parameters and returns an integer,</span> <span class="linenos" data-line="2"></span><span class="c1">// evaluates it, and uses the closure's return value (an Int) as the function's return value.</span> <span class="linenos" data-line="3"></span><span class="kd">func</span> <span class="nf">foo</span><span class="p">(</span><span class="n">closure</span> <span class="n">bar</span><span class="p">:</span> <span class="p">()</span> <span class="p">-></span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="nb">Int</span> <span class="p">{</span> <span class="linenos" data-line="4"></span> <span class="k">return</span> <span class="n">bar</span><span class="p">()</span> <span class="linenos" data-line="5"></span><span class="p">}</span> <span class="linenos" data-line="6"></span> <span class="linenos" data-line="7"></span><span class="c1">// Without trailing closure syntax:</span> <span class="linenos" data-line="8"></span><span class="n">foo</span><span class="p">(</span><span class="n">closure</span><span class="p">:</span> <span class="p">{</span> <span class="k">return</span> <span class="mi">1</span> <span class="p">})</span> <span class="linenos" data-line="9"></span> <span class="linenos" data-line="10"></span><span class="c1">// With trailing closure syntax, and implicit return:</span> <span class="linenos" data-line="11"></span><span class="n">foo</span> <span class="p">{</span> <span class="mi">1</span> <span class="p">}</span> </pre></div> <p>Starting from version 5.3, Swift supports multiple trailing closures:<sup id="cite_ref-77" class="reference"><a href="#cite_note-77"><span class="cite-bracket">[</span>77<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="c1">// This function passes the return of the first closure as the parameter of the second,</span> <span class="c1">// and returns the second closure's result:</span> <span class="kd">func</span> <span class="nf">foo</span><span class="p">(</span><span class="n">bar</span><span class="p">:</span> <span class="p">()</span> <span class="p">-></span> <span class="nb">Int</span><span class="p">,</span> <span class="n">baz</span><span class="p">:</span> <span class="p">(</span><span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="nb">Int</span> <span class="p">{</span> <span class="k">return</span> <span class="n">baz</span><span class="p">(</span><span class="n">bar</span><span class="p">())</span> <span class="p">}</span> <span class="c1">// With no trailing closures:</span> <span class="n">foo</span><span class="p">(</span><span class="n">bar</span><span class="p">:</span> <span class="p">{</span> <span class="k">return</span> <span class="mi">1</span> <span class="p">},</span> <span class="n">baz</span><span class="p">:</span> <span class="p">{</span> <span class="n">x</span> <span class="k">in</span> <span class="k">return</span> <span class="n">x</span> <span class="o">+</span> <span class="mi">1</span> <span class="p">})</span> <span class="c1">// With 1 trailing closure:</span> <span class="n">foo</span><span class="p">(</span><span class="n">bar</span><span class="p">:</span> <span class="p">{</span> <span class="k">return</span> <span class="mi">1</span> <span class="p">})</span> <span class="p">{</span> <span class="n">x</span> <span class="k">in</span> <span class="k">return</span> <span class="n">x</span> <span class="o">+</span> <span class="mi">1</span> <span class="p">}</span> <span class="c1">// With 2 trailing closures (only the first closure's argument name is omitted):</span> <span class="n">foo</span> <span class="p">{</span> <span class="k">return</span> <span class="mi">1</span> <span class="p">}</span> <span class="n">baz</span><span class="p">:</span> <span class="p">{</span> <span class="n">x</span> <span class="k">in</span> <span class="k">return</span> <span class="n">x</span> <span class="o">+</span> <span class="mi">1</span> <span class="p">}</span> </pre></div><p>Swift will provide shorthand argument names for inline closures, removing the need to explicitly name all of the closures parameters.<sup id="cite_ref-78" class="reference"><a href="#cite_note-78"><span class="cite-bracket">[</span>78<span class="cite-bracket">]</span></a></sup> Arguments can be referred to with the names $0, $1, $2, and so on:</p><div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">let</span> <span class="nv">names</span> <span class="p">=</span> <span class="p">[</span><span class="s">"Josephine"</span><span class="p">,</span> <span class="s">"Steve"</span><span class="p">,</span> <span class="s">"Chris"</span><span class="p">,</span> <span class="s">"Barbara"</span><span class="p">]</span> <span class="c1">// filter calls the given closure for each value in names. </span> <span class="c1">// Values with a character count less than 6 are kept, the others are dropped.</span> <span class="kd">let</span> <span class="nv">shortNames</span> <span class="p">=</span> <span class="n">names</span><span class="p">.</span><span class="bp">filter</span> <span class="p">{</span> <span class="nv">$0</span><span class="p">.</span><span class="bp">count</span> <span class="o"><</span> <span class="mi">6</span> <span class="p">}</span> <span class="bp">print</span><span class="p">(</span><span class="n">shortNames</span><span class="p">)</span> <span class="c1">// Prints "["Steve", "Chris"]"</span> </pre></div><p>Closures may capture values from their surrounding scope. The closure will refer to this captured value for as long as the closure exists:</p><div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">func</span> <span class="nf">makeMultiplier</span><span class="p">(</span><span class="n">withMultiple</span> <span class="n">multiple</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="p">(</span><span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="p">(</span><span class="nb">Int</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// Create and return a closure that takes in an Int and returns the input multiplied by the value of multiple.</span> <span class="k">return</span> <span class="p">{</span> <span class="nv">$0</span> <span class="o">*</span> <span class="n">multiple</span> <span class="p">}</span> <span class="p">}</span> <span class="kd">let</span> <span class="nv">multiplier</span> <span class="p">=</span> <span class="n">makeMultiplier</span><span class="p">(</span><span class="n">withMultiple</span><span class="p">:</span> <span class="mi">3</span><span class="p">)</span> <span class="bp">print</span><span class="p">(</span><span class="n">multiplier</span><span class="p">(</span><span class="mi">3</span><span class="p">))</span> <span class="c1">// Prints "9"</span> <span class="bp">print</span><span class="p">(</span><span class="n">multiplier</span><span class="p">(</span><span class="mi">10</span><span class="p">))</span> <span class="c1">// Prints "30"</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="String_support">String support</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=7" title="Edit section: String support"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The Swift standard library includes unicode-compliant <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="nb">String</span></code> and <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="nb">Character</span></code> types. String values can be initialized with a String literal, a sequence of characters surrounded by double quotation marks. Strings can be concatenated with the <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="o">+</span></code> operator: </p> <div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">var</span> <span class="nv">someString</span> <span class="p">=</span> <span class="s">"Hello,"</span> <span class="n">someString</span> <span class="o">+=</span> <span class="s">" world!"</span> </pre></div><p>String interpolation allows for the creation of a new string from other values and expressions. Values written between parentheses preceded by a <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="err">\</span></code> will be inserted into the enclosing string literal:<sup id="cite_ref-79" class="reference"><a href="#cite_note-79"><span class="cite-bracket">[</span>79<span class="cite-bracket">]</span></a></sup> </p><div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">var</span> <span class="nv">currentScore</span> <span class="p">=</span> <span class="mi">980</span> <span class="bp">print</span><span class="p">(</span><span class="s">"Your score is </span><span class="si">\(</span><span class="n">currentScore</span><span class="si">)</span><span class="s">."</span><span class="p">)</span> <span class="c1">// Prints "Your score is 980."</span> </pre></div><p>A for-in loop can be used to iterate over the characters contained in a string: </p><div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="k">for</span> <span class="n">character</span> <span class="k">in</span> <span class="s">"Swift"</span> <span class="p">{</span> <span class="bp">print</span><span class="p">(</span><span class="n">character</span><span class="p">)</span> <span class="p">}</span> <span class="c1">// S</span> <span class="c1">// w</span> <span class="c1">// i</span> <span class="c1">// f</span> <span class="c1">// t</span> </pre></div><p>When the Foundation framework is imported Swift invisibly bridges the String type to NSString, the String class commonly used in Objective-C. </p><div class="mw-heading mw-heading3"><h3 id="Callable_objects">Callable objects</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=8" title="Edit section: Callable objects"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="excerpt-block"><style data-mw-deduplicate="TemplateStyles:r1066933788">.mw-parser-output .excerpt-hat .mw-editsection-like{font-style:normal}</style><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable dablink excerpt-hat selfref">This section is an excerpt from <a href="/wiki/Callable_object#In_Swift" title="Callable object">Callable object § In Swift</a>.<span class="mw-editsection-like plainlinks"><span class="mw-editsection-bracket">[</span><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Callable_object&action=edit">edit</a><span class="mw-editsection-bracket">]</span></span></div><div class="excerpt"> <p>In Swift, callable objects are defined using <code>callAsFunction</code>.<sup id="cite_ref-80" class="reference"><a href="#cite_note-80"><span class="cite-bracket">[</span>80<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">struct</span> <span class="nc">CallableStruct</span> <span class="p">{</span> <span class="kd">var</span> <span class="nv">value</span><span class="p">:</span> <span class="nb">Int</span> <span class="kd">func</span> <span class="nf">callAsFunction</span><span class="p">(</span><span class="kc">_</span> <span class="n">number</span><span class="p">:</span> <span class="nb">Int</span><span class="p">,</span> <span class="n">scale</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">{</span> <span class="bp">print</span><span class="p">(</span><span class="n">scale</span> <span class="o">*</span> <span class="p">(</span><span class="n">number</span> <span class="o">+</span> <span class="n">value</span><span class="p">))</span> <span class="p">}</span> <span class="p">}</span> <span class="kd">let</span> <span class="nv">callable</span> <span class="p">=</span> <span class="n">CallableStruct</span><span class="p">(</span><span class="n">value</span><span class="p">:</span> <span class="mi">100</span><span class="p">)</span> <span class="n">callable</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">scale</span><span class="p">:</span> <span class="mi">2</span><span class="p">)</span> <span class="n">callable</span><span class="p">.</span><span class="n">callAsFunction</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">scale</span><span class="p">:</span> <span class="mi">2</span><span class="p">)</span> <span class="c1">// Both function calls print 208.</span> </pre></div></div></div> <div class="mw-heading mw-heading3"><h3 id="Access_control">Access control</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=9" title="Edit section: Access control"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Swift supports five <a href="/wiki/Encapsulation_(object-oriented_programming)" class="mw-redirect" title="Encapsulation (object-oriented programming)">access control</a> levels for symbols: <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="n">open</span></code>, <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="kd">public</span></code>, <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="kd">internal</span></code>, <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="n">fileprivate</span></code>, and <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="kd">private</span></code>. Unlike many object-oriented languages, these access controls ignore <a href="/wiki/Inheritance_(object-oriented_programming)" title="Inheritance (object-oriented programming)">inheritance</a> hierarchies: <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="kd">private</span></code> indicates that a symbol is accessible only in the immediate <a href="/wiki/Scope_(computing)" class="mw-redirect" title="Scope (computing)">scope</a>, <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="n">fileprivate</span></code> indicates it is accessible only from within the file, <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="kd">internal</span></code> indicates it is accessible within the containing module, <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="kd">public</span></code> indicates it is accessible from any module, and <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="n">open</span></code> (only for classes and their methods) indicates that the class may be subclassed outside of the module.<sup id="cite_ref-81" class="reference"><a href="#cite_note-81"><span class="cite-bracket">[</span>81<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Optionals_and_chaining">Optionals and chaining</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=10" title="Edit section: Optionals and chaining"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>An important feature in Swift is <a href="/wiki/Option_type" title="Option type">option types</a>, which allow <a href="/wiki/Reference_(computer_science)" title="Reference (computer science)">references</a> or values to operate in a manner similar to the common pattern in <a href="/wiki/C_(programming_language)" title="C (programming language)">C</a>, where a <a href="/wiki/Pointer_(computer_programming)" title="Pointer (computer programming)">pointer</a> may either refer to a specific value or no value at all. This implies that non-optional types cannot result in a <a href="/wiki/Pointer_(computer_programming)#Making_pointers_safer" title="Pointer (computer programming)">null-pointer error</a>; the compiler can ensure this is not possible. </p><p>Optional types are created with the <code>Optional</code> enum. To make an Integer that is nullable, one would use a declaration similar to <code>var optionalInteger: Optional<Int></code>. As in C#,<sup id="cite_ref-82" class="reference"><a href="#cite_note-82"><span class="cite-bracket">[</span>82<span class="cite-bracket">]</span></a></sup> Swift also includes syntactic sugar for this, allowing one to indicate a variable is optional by placing a question mark after the type name, <code>var optionalInteger: Int?</code>.<sup id="cite_ref-83" class="reference"><a href="#cite_note-83"><span class="cite-bracket">[</span>83<span class="cite-bracket">]</span></a></sup> Variables or constants that are marked optional either have a value of the underlying type or are <code>nil</code>. Optional types <i>wrap</i> the base type, resulting in a different instance. <code>String</code> and <code>String?</code> are fundamentally different types, the former is of type <code>String</code> while the latter is an <code>Optional</code> that may be holding some <code>String</code> value. </p><p>To access the value inside, assuming it is not nil, it must be <i>unwrapped</i> to expose the instance inside. This is performed with the <code>!</code> operator: </p> <div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">let</span> <span class="nv">myValue</span> <span class="p">=</span> <span class="n">anOptionalInstance</span><span class="p">!.</span><span class="n">someMethod</span><span class="p">()</span> </pre></div> <p>In this case, the <code>!</code> operator unwraps <code>anOptionalInstance</code> to expose the instance inside, allowing the method call to be made on it. If <code>anOptionalInstance</code> is nil, a null-pointer error occurs, terminating the program. This is known as force unwrapping. Optionals may be safely unwrapped using <a href="/wiki/Safe_navigation_operator" title="Safe navigation operator">optional chaining</a> which first tests whether the instance is nil, and then unwrap it if it is non-null: </p> <div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">let</span> <span class="nv">myValue</span> <span class="p">=</span> <span class="n">anOptionalInstance</span><span class="p">?.</span><span class="n">someMethod</span><span class="p">()</span> </pre></div> <p>In this case the runtime calls <code>someMethod</code> only if <code>anOptionalInstance</code> is not nil, suppressing the error. A <code>?</code> must be placed after every optional property. If any of these properties are nil the entire expression evaluates as nil. The origin of the term <i>chaining</i> comes from the more common case where several method calls/getters are chained together. For instance: </p> <div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">let</span> <span class="nv">aTenant</span> <span class="p">=</span> <span class="n">aBuilding</span><span class="p">.</span><span class="n">tenantList</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span> <span class="kd">let</span> <span class="nv">theirLease</span> <span class="p">=</span> <span class="n">aTenant</span><span class="p">.</span><span class="n">leaseDetails</span> <span class="kd">let</span> <span class="nv">leaseStart</span> <span class="p">=</span> <span class="n">theirLease</span><span class="p">?.</span><span class="n">startDate</span> </pre></div> <p>can be reduced to: </p> <div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">let</span> <span class="nv">leaseStart</span> <span class="p">=</span> <span class="n">aBuilding</span><span class="p">.</span><span class="n">tenantList</span><span class="p">[</span><span class="mi">5</span><span class="p">].</span><span class="n">leaseDetails</span><span class="p">?.</span><span class="n">startDate</span> </pre></div> <p>Swift's use of optionals allows the compiler to use <a href="/wiki/Static_dispatch" title="Static dispatch">static dispatch</a> because the unwrapping action is called on a defined instance (the wrapper), versus occurring in a runtime dispatch system. </p> <div class="mw-heading mw-heading3"><h3 id="Value_types">Value types</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=11" title="Edit section: Value types"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>In many object-oriented languages, objects are represented internally in two parts. The object is stored as a block of data placed on the <a href="/wiki/Heap_(data_structure)" title="Heap (data structure)">heap</a>, while the name (or "handle") to that object is represented by a <a href="/wiki/Pointer_(computer_programming)" title="Pointer (computer programming)">pointer</a>. Objects are passed between methods by copying the value of the pointer, allowing the same underlying data on the heap to be accessed by anyone with a copy. In contrast, basic types like integers and floating-point values are represented directly; the handle contains the data, not a pointer to it, and that data is passed directly to methods by copying. These styles of access are termed <i>pass-by-reference</i> in the case of objects, and <i>pass-by-value</i> for basic types. </p><p>Both concepts have their advantages and disadvantages. Objects are useful when the data is large, like the description of a window or the contents of a document. In these cases, access to that data is provided by copying a 32- or 64-bit value, versus copying an entire data structure. However, smaller values like integers are the same size as pointers (typically both are one <a href="/wiki/Word_(computer_architecture)" title="Word (computer architecture)">word</a>), so there is no advantage to passing a pointer, versus passing the value. </p><p>Swift offers built-in support for objects using either pass-by-reference or pass-by-value semantics, the former using the <code>class</code> declaration and the latter using <code>struct</code>. Structs in Swift have almost all the same features as classes: methods, implementing protocols and using the extension mechanisms. For this reason, Apple terms all data generically as <i>instances</i>, versus objects or values. Structs do not support inheritance, however.<sup id="cite_ref-classesstructs_84-0" class="reference"><a href="#cite_note-classesstructs-84"><span class="cite-bracket">[</span>84<span class="cite-bracket">]</span></a></sup> </p><p>The programmer is free to choose which semantics are more appropriate for each data structure in the application. Larger structures like windows would be defined as classes, allowing them to be passed around as pointers. Smaller structures, like a 2D point, can be defined as structs, which will be pass-by-value and allow direct access to their internal data with no indirection or reference counting. The performance improvement inherent to the pass-by-value concept is such that Swift uses these types for almost all common data types, including <code>Int</code> and <code>Double</code>, and types normally represented by objects, like <code>String</code> and <code>Array</code>.<sup id="cite_ref-classesstructs_84-1" class="reference"><a href="#cite_note-classesstructs-84"><span class="cite-bracket">[</span>84<span class="cite-bracket">]</span></a></sup> Using value types can result in significant performance improvements in user applications as well.<sup id="cite_ref-85" class="reference"><a href="#cite_note-85"><span class="cite-bracket">[</span>85<span class="cite-bracket">]</span></a></sup> </p><p><code>Array</code>, <code>Dictionary</code>, and <code>Set</code> all utilize <a href="/wiki/Copy_on_write" class="mw-redirect" title="Copy on write">copy on write</a> so that their data are copied only if and when the program attempts to change a value in them. This means that the various accessors have what is in effect a pointer to the same data storage. So while the data is physically stored as one instance in memory, at the level of the application, these values are separate and physical separation is enforced by copy on write only if needed.<sup id="cite_ref-86" class="reference"><a href="#cite_note-86"><span class="cite-bracket">[</span>86<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Extensions">Extensions</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=12" title="Edit section: Extensions"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Extensions add new functionality to an existing type, without the need to subclass or even have access to the original source code. Extensions can add new methods, initializers, computed properties, subscripts, and protocol conformances.<sup id="cite_ref-87" class="reference"><a href="#cite_note-87"><span class="cite-bracket">[</span>87<span class="cite-bracket">]</span></a></sup> An example might be to add a spell checker to the base <code>String</code> type, which means all instances of <code>String</code> in the program gain the ability to spell-check. The system is also widely used as an organizational technique, allowing related code to be gathered into library-like extensions. </p><p> Extensions are declared with the <code>extension</code> keyword.</p><div class="mw-highlight mw-highlight-lang-swift mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="kd">struct</span> <span class="nc">Rectangle</span> <span class="p">{</span> <span class="linenos" data-line="2"></span> <span class="kd">let</span> <span class="nv">width</span><span class="p">:</span> <span class="nb">Double</span> <span class="linenos" data-line="3"></span> <span class="kd">let</span> <span class="nv">height</span><span class="p">:</span> <span class="nb">Double</span> <span class="linenos" data-line="4"></span><span class="p">}</span> <span class="linenos" data-line="5"></span> <span class="linenos" data-line="6"></span><span class="kd">extension</span> <span class="nc">Rectangle</span> <span class="p">{</span> <span class="linenos" data-line="7"></span> <span class="kd">var</span> <span class="nv">area</span><span class="p">:</span> <span class="nb">Double</span> <span class="p">{</span> <span class="linenos" data-line="8"></span> <span class="k">return</span> <span class="n">height</span> <span class="o">*</span> <span class="n">width</span> <span class="linenos" data-line="9"></span> <span class="p">}</span> <span class="linenos" data-line="10"></span><span class="p">}</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="Protocol-oriented_programming">Protocol-oriented programming</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=13" title="Edit section: Protocol-oriented programming"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Protocols promise that a particular type implements a set of methods or properties, meaning that other instances in the system can call those methods on any instance implementing that protocol. This is often used in modern object-oriented languages as a substitute for <a href="/wiki/Multiple_inheritance" title="Multiple inheritance">multiple inheritance</a>, although the feature sets are not entirely similar. </p><p>In Objective-C, and most other languages implementing the protocol concept, it is up to the programmer to ensure that the required methods are implemented in each class.<sup id="cite_ref-88" class="reference"><a href="#cite_note-88"><span class="cite-bracket">[</span>88<span class="cite-bracket">]</span></a></sup> Swift adds the ability to add these methods using extensions, and to use <a href="/wiki/Generic_programming" title="Generic programming">generic programming</a> (generics) to implement them. Combined, these allow protocols to be written once and support a wide variety of instances. Also, the extension mechanism can be used to add protocol conformance to an object that does not list that protocol in its definition.<sup id="cite_ref-protocols_89-0" class="reference"><a href="#cite_note-protocols-89"><span class="cite-bracket">[</span>89<span class="cite-bracket">]</span></a></sup> </p><p>For example, a protocol might be declared called <code>Printable</code>, which ensures that instances that conform to the protocol implement a <code>description</code> property and a <code>printDetails()</code> method requirement: </p> <div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="c1">// Define a protocol named Printable</span> <span class="kd">protocol</span> <span class="nc">Printable</span> <span class="p">{</span> <span class="kd">var</span> <span class="nv">description</span><span class="p">:</span> <span class="nb">String</span> <span class="p">{</span> <span class="kr">get</span> <span class="p">}</span> <span class="c1">// A read-only property requirement</span> <span class="kd">func</span> <span class="nf">printDetails</span><span class="p">()</span> <span class="c1">// A method requirement</span> <span class="p">}</span> </pre></div> <p>This protocol can now be adopted by other types: </p> <div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="c1">// Adopt the Printable protocol in a class</span> <span class="kd">class</span> <span class="bp">MyClass</span><span class="p">:</span> <span class="nb">Printable</span> <span class="p">{</span> <span class="kd">var</span> <span class="nv">description</span><span class="p">:</span> <span class="nb">String</span> <span class="p">{</span> <span class="k">return</span> <span class="s">"An instance of MyClass"</span> <span class="p">}</span> <span class="kd">func</span> <span class="nf">printDetails</span><span class="p">()</span> <span class="p">{</span> <span class="bp">print</span><span class="p">(</span><span class="n">description</span><span class="p">)</span> <span class="p">}</span> <span class="p">}</span> </pre></div><p> Extensions can be used to add protocol conformance to types. Protocols themselves can also be extended to provide default implementations of their requirements. Adopters may define their own implementations, or they may use the default implementation:</p><div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">extension</span> <span class="nc">Printable</span> <span class="p">{</span> <span class="c1">// All Printable instances will receive this implementation, or they may define their own.</span> <span class="kd">func</span> <span class="nf">printDetails</span><span class="p">()</span> <span class="p">{</span> <span class="bp">print</span><span class="p">(</span><span class="n">description</span><span class="p">)</span> <span class="p">}</span> <span class="p">}</span> <span class="c1">// Bool now conforms to Printable, and inherits the printDetails() implementation above.</span> <span class="kd">extension</span> <span class="nc">Bool</span><span class="p">:</span> <span class="nb">Printable</span> <span class="p">{</span> <span class="kd">var</span> <span class="nv">description</span><span class="p">:</span> <span class="nb">String</span> <span class="p">{</span> <span class="k">return</span> <span class="s">"An instance of Bool with value: </span><span class="si">\(</span><span class="kc">self</span><span class="si">)</span><span class="s">"</span> <span class="p">}</span> <span class="p">}</span> </pre></div> <p>In Swift, like many modern languages supporting interfaces, protocols can be used as types, which means variables and methods can be defined by protocol instead of their specific type: </p> <div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">func</span> <span class="nf">getSomethingPrintable</span><span class="p">()</span> <span class="p">-></span> <span class="n">any</span> <span class="nb">Printable</span> <span class="p">{</span> <span class="k">return</span> <span class="kc">true</span> <span class="p">}</span> <span class="kd">var</span> <span class="nv">someSortOfPrintableInstance</span> <span class="p">=</span> <span class="n">getSomethingPrintable</span><span class="p">()</span> <span class="bp">print</span><span class="p">(</span><span class="n">someSortOfPrintableInstance</span><span class="p">.</span><span class="n">description</span><span class="p">)</span> <span class="c1">// Prints "An instance of Bool with value: true"</span> </pre></div> <p>It does not matter what concrete type of <code>someSortOfPrintableInstance</code> is, the compiler will ensure that it conforms to the protocol and thus this code is safe. This syntax also means that collections can be based on protocols also, like <code>let printableArray = [any Printable]</code>. </p><p>Both extensions and protocols are used extensively in Swift's standard library; in Swift 5.9, approximately 1.2 percent of all symbols within the standard library were protocols, and another 12.3 percent were protocol requirements or default implementations.<sup id="cite_ref-Swift_standard_library_statistics_90-0" class="reference"><a href="#cite_note-Swift_standard_library_statistics-90"><span class="cite-bracket">[</span>90<span class="cite-bracket">]</span></a></sup> For instance, Swift uses extensions to add the <code>Equatable</code> protocol to many of their basic types, like Strings and Arrays, allowing them to be compared with the <code>==</code> operator. The <code>Equatable</code> protocol also defines this default implementation: </p> <div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">func</span> <span class="o">!=<</span><span class="n">T</span> <span class="p">:</span> <span class="nb">Equatable</span><span class="p">>(</span><span class="n">lhs</span><span class="p">:</span> <span class="n">T</span><span class="p">,</span> <span class="n">rhs</span><span class="p">:</span> <span class="n">T</span><span class="p">)</span> <span class="p">-></span> <span class="nb">Bool</span> </pre></div> <p>This function defines a method that works on any instance conforming to <code>Equatable</code>, providing a <i>not equals</i> operator. Any instance, class or struct, automatically gains this implementation simply by conforming to <code>Equatable</code>.<sup id="cite_ref-91" class="reference"><a href="#cite_note-91"><span class="cite-bracket">[</span>91<span class="cite-bracket">]</span></a></sup> </p><p> Protocols, extensions, and generics can be combined to create sophisticated APIs. For example, constraints allow types to conditionally adopt protocols or methods based on the characteristics of the adopting type. A common use case may be adding a method on collection types only when the elements contained within the collection are <code>Equatable</code>:</p><div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">extension</span> <span class="nc">Array</span> <span class="k">where</span> <span class="n">Element</span><span class="p">:</span> <span class="nb">Equatable</span> <span class="p">{</span> <span class="c1">// allEqual will be available only on instances of Array that contain Equatable elements. </span> <span class="kd">func</span> <span class="nf">allEqual</span><span class="p">()</span> <span class="p">-></span> <span class="nb">Bool</span> <span class="p">{</span> <span class="k">for</span> <span class="n">element</span> <span class="k">in</span> <span class="kc">self</span> <span class="p">{</span> <span class="k">if</span> <span class="n">element</span> <span class="o">!=</span> <span class="kc">self</span><span class="p">.</span><span class="bp">first</span> <span class="p">{</span> <span class="k">return</span> <span class="kc">false</span> <span class="p">}</span> <span class="p">}</span> <span class="k">return</span> <span class="kc">true</span> <span class="p">}</span> <span class="p">}</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="Concurrency">Concurrency</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=14" title="Edit section: Concurrency"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div><p> Swift 5.5 introduced structured concurrency into the language.<sup id="cite_ref-92" class="reference"><a href="#cite_note-92"><span class="cite-bracket">[</span>92<span class="cite-bracket">]</span></a></sup> Structured concurrency uses <a href="/wiki/Async/await" title="Async/await">Async/await</a> syntax similar to Kotlin, JavaScript, and Rust. An async function is defined with the <code>async</code> keyword after the parameter list. When calling an async function the <code>await</code> keyword must be written before the function to indicate that execution will potentially suspend while calling function. While a function is suspended the program may run some other concurrent function in the same program. This syntax allows programs to clearly call out potential suspension points and avoid a version of the <a href="/wiki/Pyramid_of_doom_(programming)" title="Pyramid of doom (programming)">Pyramid of doom (programming)</a> caused by the previously widespread use of closure callbacks.<sup id="cite_ref-93" class="reference"><a href="#cite_note-93"><span class="cite-bracket">[</span>93<span class="cite-bracket">]</span></a></sup> </p><div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">func</span> <span class="nf">downloadText</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">String</span><span class="p">)</span> <span class="k">async</span> <span class="p">-></span> <span class="nb">String</span> <span class="p">{</span> <span class="kd">let</span> <span class="nv">result</span> <span class="p">=</span> <span class="c1">// ... some asynchronous downloading code ...</span> <span class="k">return</span> <span class="n">result</span> <span class="p">}</span> <span class="kd">let</span> <span class="nv">text</span> <span class="p">=</span> <span class="k">await</span> <span class="n">downloadText</span><span class="p">(</span><span class="s">"text1"</span><span class="p">)</span> </pre></div><p>The <code>async let</code> syntax allows multiple functions to run in parallel. <code>await</code> is again used to mark the point at which the program will suspend to wait for the completion of the <code>async</code> functions called earlier.</p><div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="c1">// Each of these calls to downloadText will run in parallel.</span> <span class="k">async</span> <span class="kd">let</span> <span class="nv">text1</span> <span class="p">=</span> <span class="n">downloadText</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="s">"text1"</span><span class="p">)</span> <span class="k">async</span> <span class="kd">let</span> <span class="nv">text2</span> <span class="p">=</span> <span class="n">downloadText</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="s">"text2"</span><span class="p">)</span> <span class="k">async</span> <span class="kd">let</span> <span class="nv">text3</span> <span class="p">=</span> <span class="n">downloadText</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="s">"text3"</span><span class="p">)</span> <span class="kd">let</span> <span class="nv">textToPrint</span> <span class="p">=</span> <span class="k">await</span> <span class="p">[</span><span class="n">text1</span><span class="p">,</span> <span class="n">text2</span><span class="p">,</span> <span class="n">text3</span><span class="p">]</span> <span class="c1">// Suspends until all three downloadText calls have returned.</span> <span class="bp">print</span><span class="p">(</span><span class="n">textToPrint</span><span class="p">)</span> </pre></div><p>Tasks and TaskGroups can be created explicitly to create a dynamic number of child tasks during runtime:</p><div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">let</span> <span class="nv">taskHandle</span> <span class="p">=</span> <span class="n">Task</span> <span class="p">{</span> <span class="k">await</span> <span class="n">downloadText</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="s">"someText"</span><span class="p">)</span> <span class="p">}</span> <span class="kd">let</span> <span class="nv">result</span> <span class="p">=</span> <span class="k">await</span> <span class="n">taskHandle</span><span class="p">.</span><span class="n">value</span> </pre></div><p>Swift uses the <a href="/wiki/Actor_model" title="Actor model">Actor model</a> to isolate mutable state, allowing different tasks to mutate shared state in a safe manner. Actors are declared with the <code>actor</code> keyword and are reference types, like classes. Only one task may access the mutable state of an actor at the same time. Actors may access and mutate their own internal state freely, but code running in separate tasks must mark each access with the <code>await</code> keyword to indicate that the code may suspend until other tasks finish accessing the actor's state.</p><div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">actor</span> <span class="n">Directory</span> <span class="p">{</span> <span class="kd">var</span> <span class="nv">names</span><span class="p">:</span> <span class="p">[</span><span class="nb">String</span><span class="p">]</span> <span class="p">=</span> <span class="p">[]</span> <span class="kd">func</span> <span class="nf">add</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">String</span><span class="p">)</span> <span class="p">{</span> <span class="n">names</span><span class="p">.</span><span class="n">append</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="p">}</span> <span class="p">}</span> <span class="kd">let</span> <span class="nv">directory</span> <span class="p">=</span> <span class="n">Directory</span><span class="p">()</span> <span class="c1">// Code suspends until other tasks finish accessing the actor.</span> <span class="k">await</span> <span class="n">directory</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="s">"Tucker"</span><span class="p">)</span> <span class="bp">print</span><span class="p">(</span><span class="k">await</span> <span class="n">directory</span><span class="p">.</span><span class="n">names</span><span class="p">)</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="Libraries,_runtime,_development"><span id="Libraries.2C_runtime.2C_development"></span>Libraries, runtime, development</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=15" title="Edit section: Libraries, runtime, development"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>On Apple systems, Swift uses the same runtime as the extant <a href="/wiki/Objective-C" title="Objective-C">Objective-C</a> system, but requires iOS 7 or macOS 10.9 or higher. It also depends on <a href="/wiki/Grand_Central_Dispatch" title="Grand Central Dispatch">Grand Central Dispatch</a>.<sup id="cite_ref-94" class="reference"><a href="#cite_note-94"><span class="cite-bracket">[</span>94<span class="cite-bracket">]</span></a></sup> Swift and Objective-C code can be used in one program, and by extension, C and C++ also. Beginning in Swift 5.9, <a href="/wiki/C%2B%2B" title="C++">C++</a> code can be used directly from Swift code.<sup id="cite_ref-95" class="reference"><a href="#cite_note-95"><span class="cite-bracket">[</span>95<span class="cite-bracket">]</span></a></sup> In the case of Objective-C, Swift has considerable access to the object model, and can be used to subclass, extend and use Objective-C code to provide protocol support.<sup id="cite_ref-96" class="reference"><a href="#cite_note-96"><span class="cite-bracket">[</span>96<span class="cite-bracket">]</span></a></sup> The converse is not true: a Swift class cannot be subclassed in Objective-C.<sup id="cite_ref-97" class="reference"><a href="#cite_note-97"><span class="cite-bracket">[</span>97<span class="cite-bracket">]</span></a></sup> </p><p>To aid development of such programs, and the re-use of extant code, Xcode 6 and higher offers a semi-automated system that builds and maintains a <i>bridging header</i> to expose Objective-C code to Swift. This takes the form of an additional <a href="/wiki/Header_file" class="mw-redirect" title="Header file">header file</a> that simply defines or imports all of the Objective-C symbols that are needed by the project's Swift code. At that point, Swift can refer to the types, functions, and variables declared in those imports as though they were written in Swift. Objective-C code can also use Swift code directly, by importing an automatically maintained header file with Objective-C declarations of the project's Swift symbols. For instance, an Objective-C file in a mixed project called "MyApp" could access Swift classes or functions with the code <code>#import "MyApp-Swift.h"</code>. Not all symbols are available through this mechanism, however—use of Swift-specific features like generic types, non-object optional types, sophisticated enums, or even Unicode identifiers may render a symbol inaccessible from Objective-C.<sup id="cite_ref-98" class="reference"><a href="#cite_note-98"><span class="cite-bracket">[</span>98<span class="cite-bracket">]</span></a></sup> </p><p>Swift also has limited support for <i>attributes</i>, metadata that is read by the development environment, and is not necessarily part of the compiled code. Like Objective-C, attributes use the <code>@</code> syntax, but the currently available set is small. One example is the <code>@IBOutlet</code> attribute, which marks a given value in the code as an <i>outlet</i>, available for use within <a href="/wiki/Interface_Builder" title="Interface Builder">Interface Builder</a> (IB). An <i>outlet</i> is a device that binds the value of the on-screen display to an object in code. </p><p>On non-Apple systems, Swift does not depend on an Objective-C runtime or other Apple system libraries; a set of Swift "Corelib" implementations replace them. These include a "swift-corelibs-foundation" to stand in for the <a href="/wiki/Foundation_Kit" title="Foundation Kit">Foundation Kit</a>, a "swift-corelibs-libdispatch" to stand in for the Grand Central Dispatch, and an "swift-corelibs-xctest" to stand in for the XCTest APIs from <a href="/wiki/Xcode" title="Xcode">Xcode</a>.<sup id="cite_ref-99" class="reference"><a href="#cite_note-99"><span class="cite-bracket">[</span>99<span class="cite-bracket">]</span></a></sup> </p><p>As of 2019, with Xcode 11, Apple has also added a major new UI paradigm called SwiftUI. SwiftUI replaces the older <a href="/wiki/Interface_Builder" title="Interface Builder">Interface Builder</a> paradigm with a new declarative development paradigm.<sup id="cite_ref-100" class="reference"><a href="#cite_note-100"><span class="cite-bracket">[</span>100<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Memory_management">Memory management</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=16" title="Edit section: Memory management"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Swift uses <a href="/wiki/Automatic_Reference_Counting" title="Automatic Reference Counting">Automatic Reference Counting</a> (ARC) to <a href="/wiki/Memory_management" title="Memory management">manage memory</a>. Every instance of a class or closure maintains a reference count which keeps a running tally of the number of references the program is holding on to. When this count reaches 0 the instance is deallocated. This automatic deallocation removes the need for a garbage collector as instances are deallocated as soon as they are no longer needed. </p><p>A <i><a href="/wiki/Reference_counting#reference_cycle" title="Reference counting">strong reference cycle</a></i> can occur if two instances each strongly reference each other (e.g. A references B, B references A). Since neither instances reference count can ever reach zero neither is ever deallocated, resulting in a <a href="/wiki/Memory_leak" title="Memory leak">memory leak</a>. Swift provides the keywords <code>weak</code> and <code>unowned</code> to prevent strong reference cycles. These keywords allow an instance to be referenced without incrementing its reference count. <code>weak</code> references must be optional variables, since they can change and become <code>nil</code>.<sup id="cite_ref-Intermediate_Swift2_101-0" class="reference"><a href="#cite_note-Intermediate_Swift2-101"><span class="cite-bracket">[</span>101<span class="cite-bracket">]</span></a></sup> Attempting to access an <code>unowned</code> value that has already been deallocated results in a runtime error. </p><p> A closure within a class can also create a strong reference cycle by capturing self references. Self references to be treated as weak or unowned can be indicated using a <i>capture list.</i></p><div class="mw-highlight mw-highlight-lang-swift mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="kd">class</span> <span class="nc">Person</span> <span class="p">{</span> <span class="linenos" data-line="2"></span> <span class="kd">let</span> <span class="nv">name</span><span class="p">:</span> <span class="nb">String</span> <span class="linenos" data-line="3"></span> <span class="kr">weak</span> <span class="kd">var</span> <span class="nv">home</span><span class="p">:</span> <span class="n">Home</span><span class="p">?</span> <span class="c1">// Defined as a weak reference in order to break the reference cycle. weak references do not increment the reference count of the instance that they refer to.</span> <span class="linenos" data-line="4"></span> <span class="linenos" data-line="5"></span> <span class="kd">init</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">String</span><span class="p">)</span> <span class="p">{</span> <span class="linenos" data-line="6"></span> <span class="kc">self</span><span class="p">.</span><span class="n">name</span> <span class="p">=</span> <span class="n">name</span> <span class="linenos" data-line="7"></span> <span class="p">}</span> <span class="linenos" data-line="8"></span> <span class="linenos" data-line="9"></span> <span class="kd">deinit</span> <span class="p">{</span> <span class="bp">print</span><span class="p">(</span><span class="s">"De-initialized </span><span class="si">\(</span><span class="n">name</span><span class="si">)</span><span class="s">"</span><span class="p">)</span> <span class="p">}</span> <span class="linenos" data-line="10"></span><span class="p">}</span> <span class="linenos" data-line="11"></span> <span class="linenos" data-line="12"></span><span class="kd">class</span> <span class="nc">Home</span> <span class="p">{</span> <span class="linenos" data-line="13"></span> <span class="kd">let</span> <span class="nv">address</span><span class="p">:</span> <span class="nb">String</span> <span class="linenos" data-line="14"></span> <span class="kd">var</span> <span class="nv">owner</span><span class="p">:</span> <span class="n">Person</span><span class="p">?</span> <span class="linenos" data-line="15"></span> <span class="linenos" data-line="16"></span> <span class="kd">init</span><span class="p">(</span><span class="n">address</span><span class="p">:</span> <span class="nb">String</span><span class="p">,</span> <span class="n">owner</span><span class="p">:</span> <span class="n">Person</span><span class="p">?)</span> <span class="p">{</span> <span class="linenos" data-line="17"></span> <span class="kc">self</span><span class="p">.</span><span class="n">address</span> <span class="p">=</span> <span class="n">address</span> <span class="linenos" data-line="18"></span> <span class="kc">self</span><span class="p">.</span><span class="n">owner</span> <span class="p">=</span> <span class="n">owner</span> <span class="linenos" data-line="19"></span> <span class="p">}</span> <span class="linenos" data-line="20"></span> <span class="linenos" data-line="21"></span> <span class="kd">deinit</span> <span class="p">{</span> <span class="bp">print</span><span class="p">(</span><span class="s">"De-initialized </span><span class="si">\(</span><span class="n">address</span><span class="si">)</span><span class="s">"</span><span class="p">)</span> <span class="p">}</span> <span class="linenos" data-line="22"></span><span class="p">}</span> <span class="linenos" data-line="23"></span> <span class="linenos" data-line="24"></span><span class="kd">var</span> <span class="nv">stacy</span><span class="p">:</span> <span class="n">Person</span><span class="p">?</span> <span class="p">=</span> <span class="n">Person</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="s">"Stacy"</span><span class="p">)</span> <span class="linenos" data-line="25"></span><span class="kd">var</span> <span class="nv">house21b</span><span class="p">:</span> <span class="n">Home</span><span class="p">?</span> <span class="p">=</span> <span class="n">Home</span><span class="p">(</span><span class="n">address</span><span class="p">:</span> <span class="s">"21b Baker Street"</span><span class="p">,</span> <span class="n">owner</span><span class="p">:</span> <span class="n">stacy</span><span class="p">)</span> <span class="linenos" data-line="26"></span> <span class="linenos" data-line="27"></span><span class="n">stacy</span><span class="p">?.</span><span class="n">home</span> <span class="p">=</span> <span class="n">house21b</span> <span class="c1">// stacy and house42b now refer to each other.</span> <span class="linenos" data-line="28"></span> <span class="linenos" data-line="29"></span><span class="n">stacy</span> <span class="p">=</span> <span class="kc">nil</span> <span class="c1">// The reference count for stacy is now 1, because house21b is still holding a reference to it. </span> <span class="linenos" data-line="30"></span><span class="n">house21b</span> <span class="p">=</span> <span class="kc">nil</span> <span class="c1">// house21b's reference count drops to 0, which in turn drops stacy's count to 0 because house21b was the last instance holding a strong reference to stacy.</span> <span class="linenos" data-line="31"></span> <span class="linenos" data-line="32"></span><span class="c1">// Prints:</span> <span class="linenos" data-line="33"></span><span class="c1">// De-initialized 21b Baker Street</span> <span class="linenos" data-line="34"></span><span class="c1">// De-initialized Stacy</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="Debugging">Debugging</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=17" title="Edit section: Debugging"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A key element of the Swift system is its ability to be cleanly debugged and run within the development environment, using a <a href="/wiki/Read%E2%80%93eval%E2%80%93print_loop" title="Read–eval–print loop">read–eval–print loop</a> (REPL), giving it interactive properties more in common with the scripting abilities of Python than traditional <a href="/wiki/System_programming" class="mw-redirect" title="System programming">system programming</a> languages. The REPL is further enhanced with <a href="/wiki/Swift_Playgrounds" title="Swift Playgrounds">playgrounds</a>, interactive views running within the Xcode environment or <a href="/wiki/Playgrounds_(Xcode_feature)" class="mw-redirect" title="Playgrounds (Xcode feature)">Playgrounds</a> app that respond to code or debugger changes on-the-fly.<sup id="cite_ref-102" class="reference"><a href="#cite_note-102"><span class="cite-bracket">[</span>102<span class="cite-bracket">]</span></a></sup> Playgrounds allow programmers to add in Swift code along with markdown documentation. Programmers can step through code and add breakpoints using <a href="/wiki/LLDB_(debugger)" title="LLDB (debugger)">LLDB</a> either in a console or an <a href="/wiki/Integrated_development_environment" title="Integrated development environment">IDE</a> like Xcode. </p> <div class="mw-heading mw-heading2"><h2 id="Comparisons_to_other_languages">Comparisons to other languages</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=18" title="Edit section: Comparisons to other languages"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Swift is considered a <a href="/wiki/List_of_C-family_programming_languages" title="List of C-family programming languages">C family programming language</a> and is similar to C in various ways: </p> <ul><li>Most operators in C also appear in Swift, although some operators such as <code>+</code> have slightly different behavior. For example, in Swift, <code>+</code> traps on overflow, whereas <code>&+</code> is used to denote the C-like behavior of wrapping on overflow.</li> <li><a href="/wiki/Curly_braces" class="mw-redirect" title="Curly braces">Curly braces</a> are used to group statements.</li> <li>Variables are assigned using an <a href="/wiki/Equals_sign" title="Equals sign">equals sign</a>, but compared using <a href="/wiki/%3D%3D" class="mw-redirect" title="==">two consecutive equals signs</a>. A new identity operator, <code>===</code>, is provided to check if two data elements refer to the same <a href="/wiki/Pointer_(computing)" class="mw-redirect" title="Pointer (computing)">object</a>.</li> <li>Control statements <code>while</code>, <code>if</code>, and <code>switch</code> are similar, but have extended functions, e.g., a <code>switch</code> that takes non-integer cases, <code>while</code> and <code>if</code> supporting <a href="/wiki/Pattern_matching" title="Pattern matching">pattern matching</a> and conditionally unwrapping optionals, <code>for</code> uses the <code class="mw-highlight mw-highlight-lang-swift mw-content-ltr" style="" dir="ltr"><span class="k">for</span> <span class="n">i</span> <span class="k">in</span> <span class="mf">1.</span><span class="p">..</span><span class="mi">10</span></code> syntax.</li> <li><a href="/wiki/Square_brackets" class="mw-redirect" title="Square brackets">Square brackets</a> are used with <a href="/wiki/Array_data_structure" class="mw-redirect" title="Array data structure">arrays</a>, both to declare them and to get a value at a given index in one of them.</li></ul> <p>It also has similarities to Objective-C: </p> <ul><li>Basic numeric types: <code>Int, UInt, Float, Double</code></li> <li>Class methods are inherited, like instance methods; <code>self</code> in class methods is the class the method was called on.</li> <li>Similar <code>for</code>...<code>in</code> enumeration syntax.</li></ul> <p>Differences from Objective-C include: </p> <ul><li>Statements need not end with semicolons (<code>;</code>), though these must be used to allow more than one statement on one line.</li> <li>No header files.</li> <li>Uses <a href="/wiki/Type_inference" title="Type inference">type inference</a>.</li> <li><a href="/wiki/Generic_programming" title="Generic programming">Generic programming</a>.</li> <li>Functions are <a href="/wiki/First_class_function" class="mw-redirect" title="First class function">first-class</a> objects.</li> <li>Enumeration cases can have associated data (<a href="/wiki/Algebraic_data_type" title="Algebraic data type">algebraic data types</a>).</li> <li>Operators can be redefined for classes (<a href="/wiki/Operator_overloading" title="Operator overloading">operator overloading</a>), and new operators can be defined.</li> <li>Strings fully support <a href="/wiki/Unicode" title="Unicode">Unicode</a>. Most Unicode characters can be used in either identifiers or operators.</li> <li>No <a href="/wiki/Exception_handling" title="Exception handling">exception handling</a>. Swift 2 introduces a different and incompatible error-handling model.<sup id="cite_ref-103" class="reference"><a href="#cite_note-103"><span class="cite-bracket">[</span>103<span class="cite-bracket">]</span></a></sup></li> <li>Several features of earlier <a href="/wiki/List_of_C-family_programming_languages" title="List of C-family programming languages">C-family languages</a> that are easy to misuse have been removed: <ul><li><a href="/wiki/Pointer_(computer_programming)" title="Pointer (computer programming)">Pointers</a> are not exposed by default. There is no need for the programmer to keep track of and mark names for referencing or dereferencing.</li> <li>Assignments return no value. This prevents the common error of writing <code>i = 0</code> instead of <code>i == 0</code> (which throws a compile-time error).</li> <li>No need to use <code>break</code> statements in <code><a href="/wiki/Switch_statement" title="Switch statement">switch</a></code> blocks. Individual cases do not fall through to the next case unless the <code>fallthrough</code> statement is used.</li> <li>Variables and constants are always initialized and array bounds are always checked.</li> <li><a href="/wiki/Integer_overflow" title="Integer overflow">Integer overflows</a>, which result in <a href="/wiki/Undefined_behavior" title="Undefined behavior">undefined behavior</a> for signed integers in C, are trapped as a run-time error in Swift. Programmers can choose to allow overflows by using the special arithmetical operators <code>&+</code>, <code>&-</code>, <code>&*</code>, <code>&/</code> and <code>&%</code>. The properties <code>min</code> and <code>max</code> are defined in Swift for all integer types and can be used to safely check for potential overflows, versus relying on constants defined for each type in external libraries.</li> <li>The one-statement form of <code>if</code> and <code>while</code>, which allows for the omission of braces around the statement, is unsupported.</li> <li>C-style enumeration <code>for (int i = 0; i < c; i++)</code>, which is prone to <a href="/wiki/Off-by-one_error" title="Off-by-one error">off-by-one errors</a>, is unsupported (from Swift 3 onward).<sup id="cite_ref-104" class="reference"><a href="#cite_note-104"><span class="cite-bracket">[</span>104<span class="cite-bracket">]</span></a></sup></li> <li>The pre- and post- <a href="/wiki/Increment_and_decrement_operators" title="Increment and decrement operators">increment and decrement operators</a> (<code>i++</code>, <code>--i</code> ...) are unsupported (from Swift 3 onward), more so since C-style <code>for</code> statements are also unsupported from Swift 3 onward.<sup id="cite_ref-105" class="reference"><a href="#cite_note-105"><span class="cite-bracket">[</span>105<span class="cite-bracket">]</span></a></sup></li></ul></li></ul> <div class="mw-heading mw-heading2"><h2 id="Development_and_other_implementations">Development and other implementations</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=19" title="Edit section: Development and other implementations"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Because Swift can run on Linux, it is sometimes also used as a server-side language.<sup id="cite_ref-106" class="reference"><a href="#cite_note-106"><span class="cite-bracket">[</span>106<span class="cite-bracket">]</span></a></sup> Some web frameworks have already been developed, such as <a href="/wiki/IBM" title="IBM">IBM</a>'s <a href="/wiki/Kitura" title="Kitura">Kitura</a> (now discontinued), <a href="/wiki/Perfect_(server_framework)" title="Perfect (server framework)">Perfect</a> and <a href="/wiki/Vapor_(Server-side_Swift)" class="mw-redirect" title="Vapor (Server-side Swift)">Vapor</a>. </p><p>An official "Server APIs" work group has also been started by Apple,<sup id="cite_ref-107" class="reference"><a href="#cite_note-107"><span class="cite-bracket">[</span>107<span class="cite-bracket">]</span></a></sup> with members of the Swift developer community playing a central role.<sup id="cite_ref-108" class="reference"><a href="#cite_note-108"><span class="cite-bracket">[</span>108<span class="cite-bracket">]</span></a></sup> </p><p>A second free implementation of Swift that targets <a href="/wiki/Cocoa_(API)" title="Cocoa (API)">Cocoa</a>, <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a>'s <a href="/wiki/Common_Language_Infrastructure" title="Common Language Infrastructure">Common Language Infrastructure</a> (<a href="/wiki/.NET_Framework" title=".NET Framework">.NET Framework</a>, now <a href="/wiki/.NET" title=".NET">.NET</a>), and the <a href="/wiki/Java_(software_platform)" title="Java (software platform)">Java</a> and <a href="/wiki/Android_(operating_system)" title="Android (operating system)">Android</a> platform exists as part of the <i>Elements Compiler</i> from <a href="/wiki/RemObjects_Software" title="RemObjects Software">RemObjects Software</a>.<sup id="cite_ref-109" class="reference"><a href="#cite_note-109"><span class="cite-bracket">[</span>109<span class="cite-bracket">]</span></a></sup> </p><p>Subsets of Swift have been <a href="/wiki/Porting" title="Porting">ported</a> to additional platforms, such as <a href="/wiki/Arduino" title="Arduino">Arduino</a><sup id="cite_ref-110" class="reference"><a href="#cite_note-110"><span class="cite-bracket">[</span>110<span class="cite-bracket">]</span></a></sup> and <a href="/wiki/Mac_OS_9" title="Mac OS 9">Mac OS 9</a>.<sup id="cite_ref-111" class="reference"><a href="#cite_note-111"><span class="cite-bracket">[</span>111<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=20" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239009302">.mw-parser-output .portalbox{padding:0;margin:0.5em 0;display:table;box-sizing:border-box;max-width:175px;list-style:none}.mw-parser-output .portalborder{border:1px solid var(--border-color-base,#a2a9b1);padding:0.1em;background:var(--background-color-neutral-subtle,#f8f9fa)}.mw-parser-output .portalbox-entry{display:table-row;font-size:85%;line-height:110%;height:1.9em;font-style:italic;font-weight:bold}.mw-parser-output .portalbox-image{display:table-cell;padding:0.2em;vertical-align:middle;text-align:center}.mw-parser-output .portalbox-link{display:table-cell;padding:0.2em 0.2em 0.2em 0.3em;vertical-align:middle}@media(min-width:720px){.mw-parser-output .portalleft{clear:left;float:left;margin:0.5em 1em 0.5em 0}.mw-parser-output .portalright{clear:right;float:right;margin:0.5em 0 0.5em 1em}}</style><ul role="navigation" aria-label="Portals" class="noprint portalbox portalborder portalright"> <li class="portalbox-entry"><span class="portalbox-image"><span class="noviewer" typeof="mw:File"><a href="/wiki/File:Octicons-terminal.svg" class="mw-file-description"><img alt="icon" src="//upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Octicons-terminal.svg/24px-Octicons-terminal.svg.png" decoding="async" width="24" height="28" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Octicons-terminal.svg/37px-Octicons-terminal.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Octicons-terminal.svg/49px-Octicons-terminal.svg.png 2x" data-file-width="896" data-file-height="1024" /></a></span></span><span class="portalbox-link"><a href="/wiki/Portal:Computer_programming" title="Portal:Computer programming">Computer programming portal</a></span></li></ul> <ul><li><a href="/wiki/Comparison_of_programming_languages" title="Comparison of programming languages">Comparison of programming languages</a></li> <li><a href="/wiki/Objective-C" title="Objective-C">Objective-C</a></li> <li><a href="/wiki/D_(programming_language)" title="D (programming language)">D (programming language)</a></li> <li><a href="/wiki/Kotlin_(programming_language)" title="Kotlin (programming language)">Kotlin (programming language)</a></li> <li><a href="/wiki/Python_(programming_language)" title="Python (programming language)">Python (programming language)</a></li> <li><a href="/wiki/Nim_(programming_language)" title="Nim (programming language)">Nim (programming language)</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=21" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.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"> <div class="mw-references-wrap mw-references-columns"><ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text">U.S. patent no. 9329844</span> </li> <li id="cite_note-version1-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-version1_2-0">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.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-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}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/swift/blog/?id=14">"Swift Has Reached 1.0"</a>. Apple. September 9, 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">March 8,</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Swift+Has+Reached+1.0&rft.pub=Apple&rft.date=2014-09-09&rft_id=https%3A%2F%2Fdeveloper.apple.com%2Fswift%2Fblog%2F%3Fid%3D14&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-b072633866c970c25e0293c4e152764c1ce4b747-v18-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-b072633866c970c25e0293c4e152764c1ce4b747-v18_3-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1">. September 27, 2024 <a rel="nofollow" class="external text" href="https://github.com/swiftlang/swift/releases/tag/swift-6.0.1-RELEASE">https://github.com/swiftlang/swift/releases/tag/swift-6.0.1-RELEASE</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.date=2024-09-27&rft_id=https%3A%2F%2Fgithub.com%2Fswiftlang%2Fswift%2Freleases%2Ftag%2Fswift-6.0.1-RELEASE&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span> <span class="cs1-visible-error citation-comment"><code class="cs1-code">{{<a href="/wiki/Template:Cite_web" title="Template:Cite web">cite web</a>}}</code>: </span><span class="cs1-visible-error citation-comment">Missing or empty <code class="cs1-code">|title=</code> (<a href="/wiki/Help:CS1_errors#citation_missing_title" title="Help:CS1 errors">help</a>)</span></span> </li> <li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.drdobbs.com/architecture-and-design/swift-objectively/240168424">"Swift, Objectively"</a>. <q>Swift is proprietary and closed: It is entirely controlled by Apple and there is no open source implementation.</q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Swift%2C+Objectively&rft_id=https%3A%2F%2Fwww.drdobbs.com%2Farchitecture-and-design%2Fswift-objectively%2F240168424&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLattner2014" class="citation web cs1"><a href="/wiki/Chris_Lattner" title="Chris Lattner">Lattner, Chris</a> (June 11, 2014). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20140714201921/http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-June/073698.html">"Re: [LLVMdev] [cfe-dev] [Advertisement] open positions in Apple's Swift compiler team"</a>. Archived from <a rel="nofollow" class="external text" href="http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-June/073698.html">the original</a> on July 14, 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">June 12,</span> 2014</span>. <q>You can imagine that many of us want it to be open source and part of LLVM, but the discussion hasn't happened yet, and won't for some time.</q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Re%3A+%5BLLVMdev%5D+%5Bcfe-dev%5D+%5BAdvertisement%5D+open+positions+in+Apple%27s+Swift+compiler+team&rft.date=2014-06-11&rft.aulast=Lattner&rft.aufirst=Chris&rft_id=http%3A%2F%2Flists.cs.uiuc.edu%2Fpipermail%2Fllvmdev%2F2014-June%2F073698.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-lattner2014-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-lattner2014_6-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://nondot.org/sabre/">"Chris Lattner's Homepage"</a>. Chris Lattner. June 3, 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">June 3,</span> 2014</span>. <q>The Swift language is the product of tireless effort from a team of language experts, documentation gurus, compiler optimization ninjas, and an incredibly important internal dogfooding group who provided feedback to help refine and battle-test ideas. Of course, it also greatly benefited from the experiences hard-won by many other languages in the field, drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.</q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Chris+Lattner%27s+Homepage&rft.pub=Chris+Lattner&rft.date=2014-06-03&rft_id=http%3A%2F%2Fnondot.org%2Fsabre%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-lattner_2014_info_1-7"><span class="mw-cite-backlink">^ <a href="#cite_ref-lattner_2014_info_1_7-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-lattner_2014_info_1_7-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLattner2014" class="citation web cs1"><a href="/wiki/Chris_Lattner" title="Chris Lattner">Lattner, Chris</a> (June 3, 2014). <a rel="nofollow" class="external text" href="http://nondot.org/sabre">"Chris Lattner's Homepage"</a>. Chris Lattner<span class="reference-accessdate">. Retrieved <span class="nowrap">June 3,</span> 2014</span>. <q>I started work on the Swift Programming Language in July of 2010. I implemented much of the basic language structure, with only a few people knowing of its existence. A few other (amazing) people started contributing in earnest late in 2011, and it became a major focus for the Apple Developer Tools group in July 2013 [...] drawing ideas from <a href="/wiki/Objective-C" title="Objective-C">Objective-C</a>, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.</q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Chris+Lattner%27s+Homepage&rft.pub=Chris+Lattner&rft.date=2014-06-03&rft.aulast=Lattner&rft.aufirst=Chris&rft_id=http%3A%2F%2Fnondot.org%2Fsabre&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-Getting_the_location_of_a_caller-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-Getting_the_location_of_a_caller_8-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/swift/blog/?id=15">"Building assert() in Swift, Part 2: __FILE__ and __LINE__"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">September 25,</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Building+assert%28%29+in+Swift%2C+Part+2%3A+__FILE__+and+__LINE__&rft_id=https%3A%2F%2Fdeveloper.apple.com%2Fswift%2Fblog%2F%3Fid%3D15&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://doc.rust-lang.org/reference/influences.html">"Influences - The Rust Reference"</a>. <i>doc.rust-lang.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">May 2,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=doc.rust-lang.org&rft.atitle=Influences+-+The+Rust+Reference&rft_id=https%3A%2F%2Fdoc.rust-lang.org%2Freference%2Finfluences.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/vlang/v/blob/master/doc/docs.md#introduction">"influenced by - V documentation"</a>. <i>github.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">November 3,</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=github.com&rft.atitle=influenced+by+-+V+documentation&rft_id=https%3A%2F%2Fgithub.com%2Fvlang%2Fv%2Fblob%2Fmaster%2Fdoc%2Fdocs.md%23introduction&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLardinois2014" class="citation web cs1">Lardinois, Frederic (June 2, 2014). <a rel="nofollow" class="external text" href="https://techcrunch.com/2014/06/02/apple-launches-swift-a-new-programming-language-for-writing-ios-and-os-x-apps/">"Apple Launches Swift, A New Programming Language For Writing iOS And OS X Apps"</a>. <i>TechCrunch</i><span class="reference-accessdate">. Retrieved <span class="nowrap">September 7,</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=TechCrunch&rft.atitle=Apple+Launches+Swift%2C+A+New+Programming+Language+For+Writing+iOS+And+OS+X+Apps&rft.date=2014-06-02&rft.aulast=Lardinois&rft.aufirst=Frederic&rft_id=https%3A%2F%2Ftechcrunch.com%2F2014%2F06%2F02%2Fapple-launches-swift-a-new-programming-language-for-writing-ios-and-os-x-apps%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation audio-visual cs1"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=g2LwFZatfTI"><i>Protocol-oriented Programming in Swift</i></a>. <i>Apple Inc</i>. <a href="/wiki/YouTube" title="YouTube">YouTube</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Protocol-oriented+Programming+in+Swift&rft.pub=YouTube&rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dg2LwFZatfTI&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://news.ycombinator.com/item?id=13225740">"Concepts are similar to Rust Traits"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Concepts+are+similar+to+Rust+Traits&rft_id=https%3A%2F%2Fnews.ycombinator.com%2Fitem%3Fid%3D13225740&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-tnw_swift_info_1-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-tnw_swift_info_1_14-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFWilliams2014" class="citation web cs1">Williams, Owen (June 2, 2014). <a rel="nofollow" class="external text" href="https://thenextweb.com/apple/2014/06/02/apple-announces-swift-new-programming-language-ios">"Tim Berners-Lee's sixtieth birthday Apple announces Swift, a new programming language for iOS"</a>. <i>The Next Web</i><span class="reference-accessdate">. Retrieved <span class="nowrap">June 2,</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=The+Next+Web&rft.atitle=Tim+Berners-Lee%27s+sixtieth+birthday+Apple+announces+Swift%2C+a+new+programming+language+for+iOS&rft.date=2014-06-02&rft.aulast=Williams&rft.aufirst=Owen&rft_id=https%3A%2F%2Fthenextweb.com%2Fapple%2F2014%2F06%2F02%2Fapple-announces-swift-new-programming-language-ios&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.theverge.com/2015/12/3/9842854/apple-swift-open-source-released">"Apple's new programming language Swift is now open source"</a>. <i>The Verge</i>. December 3, 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">December 5,</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=The+Verge&rft.atitle=Apple%27s+new+programming+language+Swift+is+now+open+source&rft.date=2015-12-03&rft_id=https%3A%2F%2Fwww.theverge.com%2F2015%2F12%2F3%2F9842854%2Fapple-swift-open-source-released&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://blogs.wsj.com/cio/2015/12/03/apple-open-sources-swift-in-latest-pitch-to-the-enterprise/">"Apple Open Sources Swift in Latest Pitch to the Enterprise"</a></span>. CIO Journal. <i><a href="/wiki/The_Wall_Street_Journal" title="The Wall Street Journal">The Wall Street Journal</a> Blogs</i>. December 3, 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">December 5,</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=The+Wall+Street+Journal+Blogs&rft.atitle=Apple+Open+Sources+Swift+in+Latest+Pitch+to+the+Enterprise&rft.date=2015-12-03&rft_id=https%3A%2F%2Fblogs.wsj.com%2Fcio%2F2015%2F12%2F03%2Fapple-open-sources-swift-in-latest-pitch-to-the-enterprise%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://forums.swift.org/t/looking-back-on-swift-3-and-ahead-to-swift-4/3610">"Looking back on Swift 3 and ahead to Swift 4"</a>. <i>Swift Forums</i>. July 29, 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">November 19,</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Swift+Forums&rft.atitle=Looking+back+on+Swift+3+and+ahead+to+Swift+4&rft.date=2016-07-29&rft_id=https%3A%2F%2Fforums.swift.org%2Ft%2Flooking-back-on-swift-3-and-ahead-to-swift-4%2F3610&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/swiftlang/swift-evolution#source-stability">"Swift-Evolution"</a>. <i>Swift Evolution</i><span class="reference-accessdate">. Retrieved <span class="nowrap">November 19,</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Swift+Evolution&rft.atitle=Swift-Evolution&rft_id=https%3A%2F%2Fgithub.com%2Fswiftlang%2Fswift-evolution%23source-stability&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://redmonk.com/sogrady/2018/03/07/language-rankings-1-18/">"The RedMonk Programming Language Rankings: January 2018 – tecosystems"</a>. <i>redmonk.com</i>. March 7, 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">November 20,</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=redmonk.com&rft.atitle=The+RedMonk+Programming+Language+Rankings%3A+January+2018+%E2%80%93+tecosystems&rft.date=2018-03-07&rft_id=https%3A%2F%2Fredmonk.com%2Fsogrady%2F2018%2F03%2F07%2Flanguage-rankings-1-18%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFKremenek2019" class="citation web cs1">Kremenek, Ted (March 25, 2019). <a rel="nofollow" class="external text" href="https://swift.org/blog/swift-5-released/">"Swift 5 Released!"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Swift+5+Released%21&rft.date=2019-03-25&rft.aulast=Kremenek&rft.aufirst=Ted&rft_id=https%3A%2F%2Fswift.org%2Fblog%2Fswift-5-released%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFKremenek2019" class="citation web cs1">Kremenek, Ted (September 20, 2019). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220226203243/https://www.swift.org/blog/swift-5-1-released/">"Swift 5.1 Released!"</a>. Archived from <a rel="nofollow" class="external text" href="https://swift.org/blog/swift-5-1-released/">the original</a> on February 26, 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">October 28,</span> 2019</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Swift+5.1+Released%21&rft.date=2019-09-20&rft.aulast=Kremenek&rft.aufirst=Ted&rft_id=https%3A%2F%2Fswift.org%2Fblog%2Fswift-5-1-released%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHudson2021" class="citation web cs1">Hudson, Paul (June 6, 2021). <a rel="nofollow" class="external text" href="https://www.hackingwithswift.com/articles/233/whats-new-in-swift-5-5">"What's new in Swift 5.5?"</a>. <i>HackingWithSwift.com</i>. Hacking with Swift<span class="reference-accessdate">. Retrieved <span class="nowrap">June 8,</span> 2021</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=HackingWithSwift.com&rft.atitle=What%27s+new+in+Swift+5.5%3F&rft.date=2021-06-06&rft.aulast=Hudson&rft.aufirst=Paul&rft_id=https%3A%2F%2Fwww.hackingwithswift.com%2Farticles%2F233%2Fwhats-new-in-swift-5-5&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://swift.org/blog/swift-5.9-released/">"Swift 5.9 Released"</a>. <i>Swift.org</i>. September 18, 2023<span class="reference-accessdate">. Retrieved <span class="nowrap">October 9,</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Swift.org&rft.atitle=Swift+5.9+Released&rft.date=2023-09-18&rft_id=https%3A%2F%2Fswift.org%2Fblog%2Fswift-5.9-released%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-:0-24"><span class="mw-cite-backlink">^ <a href="#cite_ref-:0_24-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:0_24-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBorla2024" class="citation web cs1">Borla, Holly (March 5, 2024). <a rel="nofollow" class="external text" href="https://swift.org/blog/swift-5.10-released/">"Swift 5.10 Released"</a>. <i>Swift.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">March 13,</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Swift.org&rft.atitle=Swift+5.10+Released&rft.date=2024-03-05&rft.aulast=Borla&rft.aufirst=Holly&rft_id=https%3A%2F%2Fswift.org%2Fblog%2Fswift-5.10-released%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://swift.org/">"Swift.org"</a>. <i>Swift.org</i>. March 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">April 28,</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Swift.org&rft.atitle=Swift.org&rft.date=2014-03&rft_id=https%3A%2F%2Fswift.org%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-26">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFInc2024" class="citation web cs1">Inc, Apple (September 17, 2024). <a rel="nofollow" class="external text" href="https://www.swift.org/blog/announcing-swift-6/">"Announcing Swift 6"</a>. <i>Swift.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">October 15,</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Swift.org&rft.atitle=Announcing+Swift+6&rft.date=2024-09-17&rft.aulast=Inc&rft.aufirst=Apple&rft_id=https%3A%2F%2Fwww.swift.org%2Fblog%2Fannouncing-swift-6%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span> <span class="cs1-visible-error citation-comment"><code class="cs1-code">{{<a href="/wiki/Template:Cite_web" title="Template:Cite web">cite web</a>}}</code>: </span><span class="cs1-visible-error citation-comment"><code class="cs1-code">|last=</code> has generic name (<a href="/wiki/Help:CS1_errors#generic_name" title="Help:CS1 errors">help</a>)</span></span> </li> <li id="cite_note-stateoftheplatforms-27"><span class="mw-cite-backlink">^ <a href="#cite_ref-stateoftheplatforms_27-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-stateoftheplatforms_27-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">Platforms State of the Union, Session 102, <a href="/wiki/Apple_Worldwide_Developers_Conference" class="mw-redirect" title="Apple Worldwide Developers Conference">Apple Worldwide Developers Conference</a>, June 2, 2014</span> </li> <li id="cite_note-Apple_swift_book-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-Apple_swift_book_28-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation book cs1"><a rel="nofollow" class="external text" href="https://itunes.apple.com/book/swift-programming-language/id881256329?mt=11"><i>The Swift Programming Language</i></a>. <a href="/wiki/Apple_Inc." title="Apple Inc.">Apple</a>. June 2, 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">June 2,</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=The+Swift+Programming+Language&rft.pub=Apple&rft.date=2014-06-02&rft_id=https%3A%2F%2Fitunes.apple.com%2Fbook%2Fswift-programming-language%2Fid881256329%3Fmt%3D11&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span> <ul><li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://swift.org/documentation/">"Documentation"</a>. <i>Swift</i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Swift&rft.atitle=Documentation&rft_id=https%3A%2F%2Fswift.org%2Fdocumentation%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></li></ul> </span></li> <li id="cite_note-Swift_Blog-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-Swift_Blog_29-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/swift/blog/?id=14">"Swift Has Reached 1.0"</a>. September 9, 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">September 10,</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Swift+Has+Reached+1.0&rft.date=2014-09-09&rft_id=https%3A%2F%2Fdeveloper.apple.com%2Fswift%2Fblog%2F%3Fid%3D14&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-Xcode_6.1_release_notes-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-Xcode_6.1_release_notes_30-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/library/ios/releasenotes/DeveloperTools/RN-Xcode/Chapters/xc6_release_notes.html">"Xcode 6.1 Release Notes"</a>. October 22, 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">January 23,</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Xcode+6.1+Release+Notes&rft.date=2014-10-22&rft_id=https%3A%2F%2Fdeveloper.apple.com%2Flibrary%2Fios%2Freleasenotes%2FDeveloperTools%2FRN-Xcode%2FChapters%2Fxc6_release_notes.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-Xcode_6.3_release_notes-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-Xcode_6.3_release_notes_31-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/library/ios/releasenotes/DeveloperTools/RN-Xcode/Chapters/xc6_release_notes.html">"Xcode 6.3 Release Notes"</a>. April 8, 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">April 8,</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Xcode+6.3+Release+Notes&rft.date=2015-04-08&rft_id=https%3A%2F%2Fdeveloper.apple.com%2Flibrary%2Fios%2Freleasenotes%2FDeveloperTools%2FRN-Xcode%2FChapters%2Fxc6_release_notes.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-32">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/swift/blog/?id=32">"Swift 2 Apps in the App Store"</a>. <i>Swift Blog</i><span class="reference-accessdate">. Retrieved <span class="nowrap">March 13,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Swift+Blog&rft.atitle=Swift+2+Apps+in+the+App+Store&rft_id=https%3A%2F%2Fdeveloper.apple.com%2Fswift%2Fblog%2F%3Fid%3D32&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-33"><span class="mw-cite-backlink"><b><a href="#cite_ref-33">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation news cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20161014162805/https://swift.org/blog/swift-3-0-released/">"Swift 3.0 Released!"</a>. <i>Swift.org</i>. September 13, 2016. Archived from <a rel="nofollow" class="external text" href="https://swift.org/blog/swift-3-0-released/">the original</a> on October 14, 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">October 26,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=Swift.org&rft.atitle=Swift+3.0+Released%21&rft.date=2016-09-13&rft_id=https%3A%2F%2Fswift.org%2Fblog%2Fswift-3-0-released%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-34"><span class="mw-cite-backlink"><b><a href="#cite_ref-34">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation news cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20190328104443/https://swift.org/blog/swift-4-0-released/">"Swift 4.0 Released!"</a>. <i>Swift.org</i>. September 17, 2017. Archived from <a rel="nofollow" class="external text" href="https://swift.org/blog/swift-4-0-released/">the original</a> on March 28, 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">March 1,</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=Swift.org&rft.atitle=Swift+4.0+Released%21&rft.date=2017-09-17&rft_id=https%3A%2F%2Fswift.org%2Fblog%2Fswift-4-0-released%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-35"><span class="mw-cite-backlink"><b><a href="#cite_ref-35">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation news cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20190425153237/https://swift.org/blog/swift-4-1-released/">"Swift 4.1 Released!"</a>. <i>Swift.org</i>. March 29, 2018. Archived from <a rel="nofollow" class="external text" href="https://swift.org/blog/swift-4-1-released/">the original</a> on April 25, 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">March 30,</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=Swift.org&rft.atitle=Swift+4.1+Released%21&rft.date=2018-03-29&rft_id=https%3A%2F%2Fswift.org%2Fblog%2Fswift-4-1-released%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-Stack_Overflow_Developer_Survey_Results_2015-36"><span class="mw-cite-backlink"><b><a href="#cite_ref-Stack_Overflow_Developer_Survey_Results_2015_36-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://stackoverflow.com/research/developer-survey-2015#tech-super">"Stack Overflow Developer Survey Results 2015"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Stack+Overflow+Developer+Survey+Results+2015&rft_id=https%3A%2F%2Fstackoverflow.com%2Fresearch%2Fdeveloper-survey-2015%23tech-super&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-Stack_Overflow_Developer_Survey_Results_2016-37"><span class="mw-cite-backlink"><b><a href="#cite_ref-Stack_Overflow_Developer_Survey_Results_2016_37-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://stackoverflow.com/research/developer-survey-2016#technology-most-loved-dreaded-and-wanted">"Stack Overflow Developer Survey Results 2016"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Stack+Overflow+Developer+Survey+Results+2016&rft_id=https%3A%2F%2Fstackoverflow.com%2Fresearch%2Fdeveloper-survey-2016%23technology-most-loved-dreaded-and-wanted&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-38"><span class="mw-cite-backlink"><b><a href="#cite_ref-38">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://swift.org/about/#swiftorg-and-open-source">"Swift.org and Open Source"</a>. <i>Swift.org</i>. Apple Inc<span class="reference-accessdate">. Retrieved <span class="nowrap">February 25,</span> 2019</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Swift.org&rft.atitle=Swift.org+and+Open+Source&rft_id=https%3A%2F%2Fswift.org%2Fabout%2F%23swiftorg-and-open-source&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-39"><span class="mw-cite-backlink"><b><a href="#cite_ref-39">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.ibm.com/swift/2015/12/03/introducing-the-ibm-swift-sandbox/">"Introducing the IBM Swift Sandbox — Swift"</a>. <i>Swift</i><span class="reference-accessdate">. Retrieved <span class="nowrap">December 5,</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Swift&rft.atitle=Introducing+the+IBM+Swift+Sandbox+%E2%80%94+Swift&rft_id=https%3A%2F%2Fdeveloper.ibm.com%2Fswift%2F2015%2F12%2F03%2Fintroducing-the-ibm-swift-sandbox%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-40"><span class="mw-cite-backlink"><b><a href="#cite_ref-40">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMayo2015" class="citation web cs1">Mayo, Benjamin (December 4, 2015). <a rel="nofollow" class="external text" href="https://9to5mac.com/2015/12/04/swift-web-browser-code-ibm-sandbox/">"Write Swift code in a web browser with the IBM Swift Sandbox"</a>. <i>9to5Mac</i><span class="reference-accessdate">. Retrieved <span class="nowrap">December 5,</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=9to5Mac&rft.atitle=Write+Swift+code+in+a+web+browser+with+the+IBM+Swift+Sandbox&rft.date=2015-12-04&rft.aulast=Mayo&rft.aufirst=Benjamin&rft_id=https%3A%2F%2F9to5mac.com%2F2015%2F12%2F04%2Fswift-web-browser-code-ibm-sandbox%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-41"><span class="mw-cite-backlink"><b><a href="#cite_ref-41">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.zdnet.com/article/after-apple-open-sources-it-ibm-puts-swift-in-the-cloud/">"After Apple open sources it, IBM puts Swift programming in the cloud"</a>. <i>ZDNet</i><span class="reference-accessdate">. Retrieved <span class="nowrap">December 5,</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=ZDNet&rft.atitle=After+Apple+open+sources+it%2C+IBM+puts+Swift+programming+in+the+cloud&rft_id=https%3A%2F%2Fwww.zdnet.com%2Farticle%2Fafter-apple-open-sources-it-ibm-puts-swift-in-the-cloud%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-42"><span class="mw-cite-backlink"><b><a href="#cite_ref-42">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.ibm.com/swift/2017/12/07/package-catalog-sandbox-deprecation/">"Swift Package Catalog and Swift Sandbox Deprecation"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">November 9,</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Swift+Package+Catalog+and+Swift+Sandbox+Deprecation&rft_id=https%3A%2F%2Fdeveloper.ibm.com%2Fswift%2F2017%2F12%2F07%2Fpackage-catalog-sandbox-deprecation%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-43"><span class="mw-cite-backlink"><b><a href="#cite_ref-43">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/swift/playgrounds/">"Swift Playgrounds"</a>. <i>Apple Developer</i><span class="reference-accessdate">. Retrieved <span class="nowrap">June 19,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Apple+Developer&rft.atitle=Swift+Playgrounds&rft_id=https%3A%2F%2Fdeveloper.apple.com%2Fswift%2Fplaygrounds%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-44"><span class="mw-cite-backlink"><b><a href="#cite_ref-44">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.apple.com/swift/playgrounds/">"Swift Playgrounds — Preview"</a>. <i>Apple</i><span class="reference-accessdate">. Retrieved <span class="nowrap">June 19,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Apple&rft.atitle=Swift+Playgrounds+%E2%80%94+Preview&rft_id=https%3A%2F%2Fwww.apple.com%2Fswift%2Fplaygrounds%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-45"><span class="mw-cite-backlink"><b><a href="#cite_ref-45">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMayo2016" class="citation web cs1">Mayo, Benjamin (June 13, 2016). <a rel="nofollow" class="external text" href="https://9to5mac.com/2016/06/13/apple-announces-swift-playgrounds-for-ipad/">"Apple announces Swift Playgrounds for iPad at WWDC, public release in fall"</a>. <i>9to5Mac</i><span class="reference-accessdate">. Retrieved <span class="nowrap">June 19,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=9to5Mac&rft.atitle=Apple+announces+Swift+Playgrounds+for+iPad+at+WWDC%2C+public+release+in+fall&rft.date=2016-06-13&rft.aulast=Mayo&rft.aufirst=Benjamin&rft_id=https%3A%2F%2F9to5mac.com%2F2016%2F06%2F13%2Fapple-announces-swift-playgrounds-for-ipad%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-46"><span class="mw-cite-backlink"><b><a href="#cite_ref-46">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFCunningham2017" class="citation web cs1">Cunningham, Andrew (January 10, 2017). <a rel="nofollow" class="external text" href="https://arstechnica.com/apple/2017/01/longtime-apple-programmer-and-swift-creator-leaves-apple-for-tesla">"Longtime Apple programmer and Swift creator leaves Apple for Tesla"</a>. Ars Technica.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Longtime+Apple+programmer+and+Swift+creator+leaves+Apple+for+Tesla&rft.pub=Ars+Technica&rft.date=2017-01-10&rft.aulast=Cunningham&rft.aufirst=Andrew&rft_id=https%3A%2F%2Farstechnica.com%2Fapple%2F2017%2F01%2Flongtime-apple-programmer-and-swift-creator-leaves-apple-for-tesla&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-47"><span class="mw-cite-backlink"><b><a href="#cite_ref-47">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFWuerthele2017" class="citation web cs1">Wuerthele, Mike (January 13, 2017). <a rel="nofollow" class="external text" href="https://appleinsider.com/articles/17/01/13/new-swift-project-head-ted-kremenek-said-to-be-running-the-show-behind-the-scenes-for-some-time">"New Swift project head Ted Kremenek said to be running the show behind the scenes for some time"</a>. AppleInsider.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=New+Swift+project+head+Ted+Kremenek+said+to+be+running+the+show+behind+the+scenes+for+some+time&rft.pub=AppleInsider&rft.date=2017-01-13&rft.aulast=Wuerthele&rft.aufirst=Mike&rft_id=https%3A%2F%2Fappleinsider.com%2Farticles%2F17%2F01%2F13%2Fnew-swift-project-head-ted-kremenek-said-to-be-running-the-show-behind-the-scenes-for-some-time&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-48"><span class="mw-cite-backlink"><b><a href="#cite_ref-48">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFDaniel_Eran_Dilger2019" class="citation web cs1">Daniel Eran Dilger (June 19, 2019). <a rel="nofollow" class="external text" href="https://appleinsider.com/articles/19/06/19/wwdc19-swiftui-was-the-brightest-star-in-a-galaxy-of-new-ideas">"WWDC19: SwiftUI was the brightest star in a galaxy of new ideas"</a>. <i>AppleInsider</i><span class="reference-accessdate">. Retrieved <span class="nowrap">July 19,</span> 2019</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=AppleInsider&rft.atitle=WWDC19%3A+SwiftUI+was+the+brightest+star+in+a+galaxy+of+new+ideas&rft.date=2019-06-19&rft.au=Daniel+Eran+Dilger&rft_id=https%3A%2F%2Fappleinsider.com%2Farticles%2F19%2F06%2F19%2Fwwdc19-swiftui-was-the-brightest-star-in-a-galaxy-of-new-ideas&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-49"><span class="mw-cite-backlink"><b><a href="#cite_ref-49">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://swift.org/download/#releases">"Swift.org - Download Swift"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">June 21,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Swift.org+-+Download+Swift&rft_id=https%3A%2F%2Fswift.org%2Fdownload%2F%23releases&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-50"><span class="mw-cite-backlink"><b><a href="#cite_ref-50">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/buttaface/swift-android-sdk">"Android SDKs for Swift"</a>. <i><a href="/wiki/GitHub" title="GitHub">GitHub</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">September 10,</span> 2021</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Android+SDKs+for+Swift&rft_id=https%3A%2F%2Fgithub.com%2Fbuttaface%2Fswift-android-sdk&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-51"><span class="mw-cite-backlink"><b><a href="#cite_ref-51">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://repology.org/project/swift-lang/versions">"swift-lang package versions"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">September 10,</span> 2021</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=swift-lang+package+versions&rft_id=https%3A%2F%2Frepology.org%2Fproject%2Fswift-lang%2Fversions&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-Swift_Android_Toolchain-52"><span class="mw-cite-backlink"><b><a href="#cite_ref-Swift_Android_Toolchain_52-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFReaddle2020" class="citation web cs1">Readdle (January 15, 2020). <a rel="nofollow" class="external text" href="https://blog.readdle.com/why-we-use-swift-for-android-db449feeacaf">"Swift for Android: Our Experience and Tools"</a>. <i>Medium</i><span class="reference-accessdate">. Retrieved <span class="nowrap">August 20,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Medium&rft.atitle=Swift+for+Android%3A+Our+Experience+and+Tools&rft.date=2020-01-15&rft.au=Readdle&rft_id=https%3A%2F%2Fblog.readdle.com%2Fwhy-we-use-swift-for-android-db449feeacaf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-Swift_for_Windows-53"><span class="mw-cite-backlink"><b><a href="#cite_ref-Swift_for_Windows_53-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFAnderson2020" class="citation web cs1">Anderson, Tim (March 30, 2020). <a rel="nofollow" class="external text" href="https://www.theregister.com/2020/03/30/official_swift_programming_for_windows/">"Official tailored Swift for Windows support promised in 5.3: Swift on more platforms – provided you do not need a GUI"</a>. <i><a href="/wiki/The_Register" title="The Register">The Register</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">September 18,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=The+Register&rft.atitle=Official+tailored+Swift+for+Windows+support+promised+in+5.3%3A+Swift+on+more+platforms+%E2%80%93+provided+you+do+not+need+a+GUI&rft.date=2020-03-30&rft.aulast=Anderson&rft.aufirst=Tim&rft_id=https%3A%2F%2Fwww.theregister.com%2F2020%2F03%2F30%2Fofficial_swift_programming_for_windows%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-54"><span class="mw-cite-backlink"><b><a href="#cite_ref-54">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://swift.org/blog/swift-linux-port/">"The Swift Linux Port"</a>. <i>Swift.org</i>. Apple Inc. December 3, 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">August 3,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Swift.org&rft.atitle=The+Swift+Linux+Port&rft.date=2015-12-03&rft_id=https%3A%2F%2Fswift.org%2Fblog%2Fswift-linux-port%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-55"><span class="mw-cite-backlink"><b><a href="#cite_ref-55">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFTimmer2014" class="citation web cs1">Timmer, John (June 5, 2014). <a rel="nofollow" class="external text" href="https://arstechnica.com/apple/2014/06/a-fast-look-at-swift-apples-new-programming-language/">"A fast look at Swift, Apple's new programming language"</a>. <i><a href="/wiki/Ars_Technica" title="Ars Technica">Ars Technica</a></i>. <a href="/wiki/Cond%C3%A9_Nast" title="Condé Nast">Condé Nast</a><span class="reference-accessdate">. Retrieved <span class="nowrap">June 6,</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Ars+Technica&rft.atitle=A+fast+look+at+Swift%2C+Apple%27s+new+programming+language&rft.date=2014-06-05&rft.aulast=Timmer&rft.aufirst=John&rft_id=https%3A%2F%2Farstechnica.com%2Fapple%2F2014%2F06%2Fa-fast-look-at-swift-apples-new-programming-language%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-56"><span class="mw-cite-backlink"><b><a href="#cite_ref-56">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFKremenek2019" class="citation web cs1">Kremenek, Ted (March 25, 2019). <a rel="nofollow" class="external text" href="https://swift.org/blog/swift-5-released/">"Swift 5 Released!"</a>. <i>Swift.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">March 28,</span> 2019</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Swift.org&rft.atitle=Swift+5+Released%21&rft.date=2019-03-25&rft.aulast=Kremenek&rft.aufirst=Ted&rft_id=https%3A%2F%2Fswift.org%2Fblog%2Fswift-5-released%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-57"><span class="mw-cite-backlink"><b><a href="#cite_ref-57">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://swift.org/download/#releases">"Download Swift"</a>. <i>Swift.org</i>. Apple<span class="reference-accessdate">. Retrieved <span class="nowrap">December 15,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Swift.org&rft.atitle=Download+Swift&rft_id=https%3A%2F%2Fswift.org%2Fdownload%2F%23releases&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-58"><span class="mw-cite-backlink"><b><a href="#cite_ref-58">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFKremenek2021" class="citation web cs1">Kremenek, Ted (April 26, 2021). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210426183534/https://swift.org/blog/swift-5-4-released/">"Swift 5.4 Released!"</a>. <i>Swift.org</i>. Apple. Archived from <a rel="nofollow" class="external text" href="https://swift.org/blog/swift-5-4-released/">the original</a> on April 26, 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">April 26,</span> 2021</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Swift.org&rft.atitle=Swift+5.4+Released%21&rft.date=2021-04-26&rft.aulast=Kremenek&rft.aufirst=Ted&rft_id=https%3A%2F%2Fswift.org%2Fblog%2Fswift-5-4-released%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-59"><span class="mw-cite-backlink"><b><a href="#cite_ref-59">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFKremenek2022" class="citation web cs1">Kremenek, Ted (March 14, 2022). <a rel="nofollow" class="external text" href="https://www.swift.org/blog/swift-5.6-released/">"Swift 5.6 Released!"</a>. <i>Swift.org</i>. Apple<span class="reference-accessdate">. Retrieved <span class="nowrap">March 14,</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Swift.org&rft.atitle=Swift+5.6+Released%21&rft.date=2022-03-14&rft.aulast=Kremenek&rft.aufirst=Ted&rft_id=https%3A%2F%2Fwww.swift.org%2Fblog%2Fswift-5.6-released%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-60"><span class="mw-cite-backlink"><b><a href="#cite_ref-60">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/swiftlang/swift/releases/tag/swift-5.6.1-RELEASE">"Release Swift 5.6.1 Release · apple/Swift"</a>. <i><a href="/wiki/GitHub" title="GitHub">GitHub</a></i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Release+Swift+5.6.1+Release+%C2%B7+apple%2FSwift&rft_id=https%3A%2F%2Fgithub.com%2Fswiftlang%2Fswift%2Freleases%2Ftag%2Fswift-5.6.1-RELEASE&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-61"><span class="mw-cite-backlink"><b><a href="#cite_ref-61">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/swiftlang/swift/releases/tag/swift-5.6.2-RELEASE">"Release Swift 5.6.2 Release · apple/Swift"</a>. <i><a href="/wiki/GitHub" title="GitHub">GitHub</a></i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Release+Swift+5.6.2+Release+%C2%B7+apple%2FSwift&rft_id=https%3A%2F%2Fgithub.com%2Fswiftlang%2Fswift%2Freleases%2Ftag%2Fswift-5.6.2-RELEASE&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-62"><span class="mw-cite-backlink"><b><a href="#cite_ref-62">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/swiftlang/swift/releases/tag/swift-5.6.3-RELEASE">"Release Swift 5.6.3 Release · apple/Swift"</a>. <i><a href="/wiki/GitHub" title="GitHub">GitHub</a></i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Release+Swift+5.6.3+Release+%C2%B7+apple%2FSwift&rft_id=https%3A%2F%2Fgithub.com%2Fswiftlang%2Fswift%2Freleases%2Ftag%2Fswift-5.6.3-RELEASE&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-63"><span class="mw-cite-backlink"><b><a href="#cite_ref-63">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBorla2022" class="citation web cs1">Borla, Holly (September 12, 2022). <a rel="nofollow" class="external text" href="https://www.swift.org/blog/swift-5.7-released/">"Swift 5.7 Released!"</a>. <i>Swift.org</i>. Apple<span class="reference-accessdate">. Retrieved <span class="nowrap">September 23,</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Swift.org&rft.atitle=Swift+5.7+Released%21&rft.date=2022-09-12&rft.aulast=Borla&rft.aufirst=Holly&rft_id=https%3A%2F%2Fwww.swift.org%2Fblog%2Fswift-5.7-released%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-64"><span class="mw-cite-backlink"><b><a href="#cite_ref-64">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/swiftlang/swift/releases/tag/swift-5.7.1-RELEASE">"Release Swift 5.7.1 Release · apple/Swift"</a>. <i><a href="/wiki/GitHub" title="GitHub">GitHub</a></i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Release+Swift+5.7.1+Release+%C2%B7+apple%2FSwift&rft_id=https%3A%2F%2Fgithub.com%2Fswiftlang%2Fswift%2Freleases%2Ftag%2Fswift-5.7.1-RELEASE&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-65"><span class="mw-cite-backlink"><b><a href="#cite_ref-65">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/swiftlang/swift/releases/tag/swift-5.8-RELEASE">"Release Swift 5.8 Release · apple/Swift"</a>. <i><a href="/wiki/GitHub" title="GitHub">GitHub</a></i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Release+Swift+5.8+Release+%C2%B7+apple%2FSwift&rft_id=https%3A%2F%2Fgithub.com%2Fswiftlang%2Fswift%2Freleases%2Ftag%2Fswift-5.8-RELEASE&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-66"><span class="mw-cite-backlink"><b><a href="#cite_ref-66">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/swiftlang/swift/releases/tag/swift-5.8.1-RELEASE">"Release Swift 5.8.1 Release · apple/swift"</a>. <i>GitHub</i><span class="reference-accessdate">. Retrieved <span class="nowrap">June 14,</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Release+Swift+5.8.1+Release+%C2%B7+apple%2Fswift&rft_id=https%3A%2F%2Fgithub.com%2Fswiftlang%2Fswift%2Freleases%2Ftag%2Fswift-5.8.1-RELEASE&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-67"><span class="mw-cite-backlink"><b><a href="#cite_ref-67">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/swiftlang/swift/releases/tag/swift-5.9-RELEASE">"Release Swift 5.9 Release · apple/swift"</a>. <i>GitHub</i><span class="reference-accessdate">. Retrieved <span class="nowrap">September 18,</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Release+Swift+5.9+Release+%C2%B7+apple%2Fswift&rft_id=https%3A%2F%2Fgithub.com%2Fswiftlang%2Fswift%2Freleases%2Ftag%2Fswift-5.9-RELEASE&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-68"><span class="mw-cite-backlink"><b><a href="#cite_ref-68">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/swiftlang/swift/releases/tag/swift-5.9.1-RELEASE">"Release Swift 5.9.1 Release · apple/swift"</a>. <i>GitHub</i><span class="reference-accessdate">. Retrieved <span class="nowrap">October 19,</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Release+Swift+5.9.1+Release+%C2%B7+apple%2Fswift&rft_id=https%3A%2F%2Fgithub.com%2Fswiftlang%2Fswift%2Freleases%2Ftag%2Fswift-5.9.1-RELEASE&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-69"><span class="mw-cite-backlink"><b><a href="#cite_ref-69">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/swiftlang/swift/releases/tag/swift-5.9.2-RELEASE">"Release Swift 5.9.2 Release · apple/swift"</a>. <i>GitHub</i><span class="reference-accessdate">. Retrieved <span class="nowrap">December 11,</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Release+Swift+5.9.2+Release+%C2%B7+apple%2Fswift&rft_id=https%3A%2F%2Fgithub.com%2Fswiftlang%2Fswift%2Freleases%2Ftag%2Fswift-5.9.2-RELEASE&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-70"><span class="mw-cite-backlink"><b><a href="#cite_ref-70">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/swiftlang/swift/releases/tag/swift-5.10.1-RELEASE">"Swift 5.10.1 Release"</a>. <i>GitHub</i><span class="reference-accessdate">. Retrieved <span class="nowrap">June 5,</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Swift+5.10.1+Release&rft_id=https%3A%2F%2Fgithub.com%2Fswiftlang%2Fswift%2Freleases%2Ftag%2Fswift-5.10.1-RELEASE&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-71"><span class="mw-cite-backlink"><b><a href="#cite_ref-71">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/swiftlang/swift/releases/tag/swift-6.0-RELEASE">"Swift 6.0 Release"</a>. <i>GitHub</i><span class="reference-accessdate">. Retrieved <span class="nowrap">September 17,</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Swift+6.0+Release&rft_id=https%3A%2F%2Fgithub.com%2Fswiftlang%2Fswift%2Freleases%2Ftag%2Fswift-6.0-RELEASE&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-72"><span class="mw-cite-backlink"><b><a href="#cite_ref-72">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.swift.org/swift-book/documentation/the-swift-programming-language/aboutswift">"Documentation"</a>. <i>docs.swift.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">November 17,</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=docs.swift.org&rft.atitle=Documentation&rft_id=https%3A%2F%2Fdocs.swift.org%2Fswift-book%2Fdocumentation%2Fthe-swift-programming-language%2Faboutswift&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-Eliminate_data_races_using_Swift_Concurrency-73"><span class="mw-cite-backlink"><b><a href="#cite_ref-Eliminate_data_races_using_Swift_Concurrency_73-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/wwdc22/110351">"Eliminate data races using Swift Concurrency - WWDC22 - Videos"</a>. Apple Inc<span class="reference-accessdate">. Retrieved <span class="nowrap">November 17,</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Eliminate+data+races+using+Swift+Concurrency+-+WWDC22+-+Videos&rft.pub=Apple+Inc&rft_id=https%3A%2F%2Fdeveloper.apple.com%2Fwwdc22%2F110351&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-Documentation-74"><span class="mw-cite-backlink">^ <a href="#cite_ref-Documentation_74-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Documentation_74-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.swift.org/swift-book/documentation/the-swift-programming-language/guidedtour/">"Documentation"</a>. <i>docs.swift.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">October 15,</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=docs.swift.org&rft.atitle=Documentation&rft_id=https%3A%2F%2Fdocs.swift.org%2Fswift-book%2Fdocumentation%2Fthe-swift-programming-language%2Fguidedtour%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-75"><span class="mw-cite-backlink"><b><a href="#cite_ref-75">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.swift.org/swift-book/documentation/the-swift-programming-language/attributes/#main">"Documentation"</a>. <i>docs.swift.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">October 15,</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=docs.swift.org&rft.atitle=Documentation&rft_id=https%3A%2F%2Fdocs.swift.org%2Fswift-book%2Fdocumentation%2Fthe-swift-programming-language%2Fattributes%2F%23main&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-76"><span class="mw-cite-backlink"><b><a href="#cite_ref-76">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.swift.org/swift-book/LanguageGuide/Closures.html">"Closures — The Swift Programming Language (Swift 5.5)"</a>. <i>docs.swift.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">August 31,</span> 2021</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=docs.swift.org&rft.atitle=Closures+%E2%80%94+The+Swift+Programming+Language+%28Swift+5.5%29&rft_id=https%3A%2F%2Fdocs.swift.org%2Fswift-book%2FLanguageGuide%2FClosures.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-77"><span class="mw-cite-backlink"><b><a href="#cite_ref-77">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMacomberYaskevichGregorMcCall" class="citation web cs1">Macomber, Kyle; Yaskevich, Yavel; Gregor, Doug; McCall, John. <a rel="nofollow" class="external text" href="https://github.com/swiftlang/swift-evolution/blob/b394ae8fff585c8fdc27a50422ea8a90f13138d2/proposals/0279-multiple-trailing-closures.md">"Multiple Trailing Closures"</a>. <i>GitHub</i><span class="reference-accessdate">. Retrieved <span class="nowrap">October 19,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Multiple+Trailing+Closures&rft.aulast=Macomber&rft.aufirst=Kyle&rft.au=Yaskevich%2C+Yavel&rft.au=Gregor%2C+Doug&rft.au=McCall%2C+John&rft_id=https%3A%2F%2Fgithub.com%2Fswiftlang%2Fswift-evolution%2Fblob%2Fb394ae8fff585c8fdc27a50422ea8a90f13138d2%2Fproposals%2F0279-multiple-trailing-closures.md&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-78"><span class="mw-cite-backlink"><b><a href="#cite_ref-78">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.swift.org/swift-book/documentation/the-swift-programming-language/closures/">"Documentation"</a>. <i>docs.swift.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">October 16,</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=docs.swift.org&rft.atitle=Documentation&rft_id=https%3A%2F%2Fdocs.swift.org%2Fswift-book%2Fdocumentation%2Fthe-swift-programming-language%2Fclosures%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-79"><span class="mw-cite-backlink"><b><a href="#cite_ref-79">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.swift.org/swift-book/documentation/the-swift-programming-language/stringsandcharacters/">"Strings and Characters"</a>. <i>docs.swift.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">October 16,</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=docs.swift.org&rft.atitle=Strings+and+Characters&rft_id=https%3A%2F%2Fdocs.swift.org%2Fswift-book%2Fdocumentation%2Fthe-swift-programming-language%2Fstringsandcharacters%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-80"><span class="mw-cite-backlink"><b><a href="#cite_ref-80">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.swift.org/swift-book/ReferenceManual/Declarations.html">"Declarations — The Swift Programming Language (Swift 5.6)"</a>. <i>docs.swift.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">February 28,</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=docs.swift.org&rft.atitle=Declarations+%E2%80%94+The+Swift+Programming+Language+%28Swift+5.6%29&rft_id=https%3A%2F%2Fdocs.swift.org%2Fswift-book%2FReferenceManual%2FDeclarations.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-81"><span class="mw-cite-backlink"><b><a href="#cite_ref-81">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/AccessControl.html">"Access Control"</a>. <i>The Swift Programming Language</i>. <a href="/wiki/Apple_Inc." title="Apple Inc.">Apple</a> Developer<span class="reference-accessdate">. Retrieved <span class="nowrap">October 25,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=The+Swift+Programming+Language&rft.atitle=Access+Control&rft_id=https%3A%2F%2Fdeveloper.apple.com%2Flibrary%2Fcontent%2Fdocumentation%2FSwift%2FConceptual%2FSwift_Programming_Language%2FAccessControl.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-82"><span class="mw-cite-backlink"><b><a href="#cite_ref-82">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx">"Nullable Types"</a>, C# Programming Guide, Microsoft. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170221214236/https://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx">Archived</a> February 21, 2017, at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a>.</span> </li> <li id="cite_note-83"><span class="mw-cite-backlink"><b><a href="#cite_ref-83">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/library/prerelease/ios/documentation/swift/conceptual/swift_programming_language/Types.html">"Types"</a>. <i>The Swift Programming Language</i>. <a href="/wiki/Apple_Inc." title="Apple Inc.">Apple</a> Developer<span class="reference-accessdate">. Retrieved <span class="nowrap">July 16,</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=The+Swift+Programming+Language&rft.atitle=Types&rft_id=https%3A%2F%2Fdeveloper.apple.com%2Flibrary%2Fprerelease%2Fios%2Fdocumentation%2Fswift%2Fconceptual%2Fswift_programming_language%2FTypes.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-classesstructs-84"><span class="mw-cite-backlink">^ <a href="#cite_ref-classesstructs_84-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-classesstructs_84-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ClassesAndStructures.html">"Classes and Structures"</a>. <i>The Swift Programming Language</i>. Apple Developer. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160325202335/https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ClassesAndStructures.html">Archived</a> from the original on March 25, 2016.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=The+Swift+Programming+Language&rft.atitle=Classes+and+Structures&rft_id=https%3A%2F%2Fdeveloper.apple.com%2Flibrary%2Fios%2Fdocumentation%2FSwift%2FConceptual%2FSwift_Programming_Language%2FClassesAndStructures.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-85"><span class="mw-cite-backlink"><b><a href="#cite_ref-85">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFGuhit2015" class="citation web cs1">Guhit, Fiel (February 14, 2015). <a rel="nofollow" class="external text" href="https://medium.com/@fielgood/swift-1-1-swift-1-2-and-objective-c-a-performance-case-study-d86f7a333e2a">"Performance Case Study on Swift 1.1, Swift 1.2, and Objective-C"</a>. <i>Medium</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20231212084350/https://medium.com/@fielgood/swift-1-1-swift-1-2-and-objective-c-a-performance-case-study-d86f7a333e2a">Archived</a> from the original on December 12, 2023.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Medium&rft.atitle=Performance+Case+Study+on+Swift+1.1%2C+Swift+1.2%2C+and+Objective-C&rft.date=2015-02-14&rft.aulast=Guhit&rft.aufirst=Fiel&rft_id=https%3A%2F%2Fmedium.com%2F%40fielgood%2Fswift-1-1-swift-1-2-and-objective-c-a-performance-case-study-d86f7a333e2a&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-86"><span class="mw-cite-backlink"><b><a href="#cite_ref-86">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation audio-visual cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20150621173308/https://developer.apple.com/videos/wwdc/2015/?id=414"><i>Building Better Apps with Value Types</i></a>. Apple. Archived from <a rel="nofollow" class="external text" href="https://developer.apple.com/videos/wwdc/2015/?id=414">the original</a> on June 21, 2015.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Building+Better+Apps+with+Value+Types&rft.pub=Apple&rft_id=https%3A%2F%2Fdeveloper.apple.com%2Fvideos%2Fwwdc%2F2015%2F%3Fid%3D414&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-87"><span class="mw-cite-backlink"><b><a href="#cite_ref-87">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.swift.org/swift-book/documentation/the-swift-programming-language/extensions/">"Extensions"</a>. <i>docs.swift.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">November 28,</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=docs.swift.org&rft.atitle=Extensions&rft_id=https%3A%2F%2Fdocs.swift.org%2Fswift-book%2Fdocumentation%2Fthe-swift-programming-language%2Fextensions%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-88"><span class="mw-cite-backlink"><b><a href="#cite_ref-88">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/WorkingwithProtocols/WorkingwithProtocols.html">"Working with Protocols"</a>. <i>Programming with Objective-C</i>. Apple Developer Documentation Archive. September 17, 2014. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160429195614/https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/WorkingwithProtocols/WorkingwithProtocols.html">Archived</a> from the original on April 29, 2016.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Programming+with+Objective-C&rft.atitle=Working+with+Protocols&rft.date=2014-09-17&rft_id=https%3A%2F%2Fdeveloper.apple.com%2Flibrary%2Fios%2Fdocumentation%2FCocoa%2FConceptual%2FProgrammingWithObjectiveC%2FWorkingwithProtocols%2FWorkingwithProtocols.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-protocols-89"><span class="mw-cite-backlink"><b><a href="#cite_ref-protocols_89-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/library/prerelease/ios/documentation/Cocoa/Reference/Foundation/Protocols/NSCopying_Protocol/index.html">"NSCopying Protocol Reference"</a>. <i>Apple</i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Apple&rft.atitle=NSCopying+Protocol+Reference&rft_id=https%3A%2F%2Fdeveloper.apple.com%2Flibrary%2Fprerelease%2Fios%2Fdocumentation%2FCocoa%2FReference%2FFoundation%2FProtocols%2FNSCopying_Protocol%2Findex.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-Swift_standard_library_statistics-90"><span class="mw-cite-backlink"><b><a href="#cite_ref-Swift_standard_library_statistics_90-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://swiftinit.org/stats/swift/swift#ss:interface-breakdown">"Swift standard library statistics"</a>. <i>swiftinit.org</i>. Swiftinit<span class="reference-accessdate">. Retrieved <span class="nowrap">October 2,</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=swiftinit.org&rft.atitle=Swift+standard+library+statistics&rft_id=https%3A%2F%2Fswiftinit.org%2Fstats%2Fswift%2Fswift%23ss%3Ainterface-breakdown&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-91"><span class="mw-cite-backlink"><b><a href="#cite_ref-91">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFThompson2014" class="citation web cs1">Thompson, Mattt (September 2, 2014). <a rel="nofollow" class="external text" href="https://nshipster.com/swift-default-protocol-implementations/">"Swift Default Protocol Implementations"</a>. <i>NSHipster</i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=NSHipster&rft.atitle=Swift+Default+Protocol+Implementations&rft.date=2014-09-02&rft.aulast=Thompson&rft.aufirst=Mattt&rft_id=https%3A%2F%2Fnshipster.com%2Fswift-default-protocol-implementations%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-92"><span class="mw-cite-backlink"><b><a href="#cite_ref-92">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/swiftlang/swift-evolution/blob/main/proposals/0304-structured-concurrency.md">"swift-evolution/proposals/0304-structured-concurrency.md at main · apple/swift-evolution"</a>. <i>GitHub</i><span class="reference-accessdate">. Retrieved <span class="nowrap">October 16,</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=swift-evolution%2Fproposals%2F0304-structured-concurrency.md+at+main+%C2%B7+apple%2Fswift-evolution&rft_id=https%3A%2F%2Fgithub.com%2Fswiftlang%2Fswift-evolution%2Fblob%2Fmain%2Fproposals%2F0304-structured-concurrency.md&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-93"><span class="mw-cite-backlink"><b><a href="#cite_ref-93">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/swiftlang/swift-evolution/blob/main/proposals/0296-async-await.md#motivation-completion-handlers-are-suboptimal">"swift-evolution/proposals/0296-async-await.md at main · apple/swift-evolution"</a>. <i>GitHub</i><span class="reference-accessdate">. Retrieved <span class="nowrap">October 16,</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=swift-evolution%2Fproposals%2F0296-async-await.md+at+main+%C2%B7+apple%2Fswift-evolution&rft_id=https%3A%2F%2Fgithub.com%2Fswiftlang%2Fswift-evolution%2Fblob%2Fmain%2Fproposals%2F0296-async-await.md%23motivation-completion-handlers-are-suboptimal&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-94"><span class="mw-cite-backlink"><b><a href="#cite_ref-94">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://stackoverflow.com/questions/24001778/do-swift-based-apps-work-on-os-x-10-9-ios-7-and-lower/24038997#24038997">"Do Swift-based apps work on macOS 10.9/iOS 7 and lower?"</a>, StackOverflow</span> </li> <li id="cite_note-95"><span class="mw-cite-backlink"><b><a href="#cite_ref-95">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFInc2023" class="citation web cs1">Inc, Apple (September 18, 2023). <a rel="nofollow" class="external text" href="https://swift.org/blog/swift-5.9-released/">"Swift 5.9 Released"</a>. <i>Swift.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">October 9,</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Swift.org&rft.atitle=Swift+5.9+Released&rft.date=2023-09-18&rft.aulast=Inc&rft.aufirst=Apple&rft_id=https%3A%2F%2Fswift.org%2Fblog%2Fswift-5.9-released%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span> <span class="cs1-visible-error citation-comment"><code class="cs1-code">{{<a href="/wiki/Template:Cite_web" title="Template:Cite web">cite web</a>}}</code>: </span><span class="cs1-visible-error citation-comment"><code class="cs1-code">|last=</code> has generic name (<a href="/wiki/Help:CS1_errors#generic_name" title="Help:CS1 errors">help</a>)</span></span> </li> <li id="cite_note-96"><span class="mw-cite-backlink"><b><a href="#cite_ref-96">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/WritingSwiftClassesWithObjective-CBehavior.html">"Writing Swift Classes with Objective-C Behavior"</a>, Apple Inc.</span> </li> <li id="cite_note-97"><span class="mw-cite-backlink"><b><a href="#cite_ref-97">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/Migration.html">"Migrating Your Objective-C Code to Swift"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Migrating+Your+Objective-C+Code+to+Swift&rft_id=https%3A%2F%2Fdeveloper.apple.com%2Flibrary%2Fios%2Fdocumentation%2FSwift%2FConceptual%2FBuildingCocoaApps%2FMigration.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-98"><span class="mw-cite-backlink"><b><a href="#cite_ref-98">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-XID_77">"Swift and Objective-C in the Same Project"</a>, Apple Inc.</span> </li> <li id="cite_note-99"><span class="mw-cite-backlink"><b><a href="#cite_ref-99">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/apple?utf8=%E2%9C%93&q=corelibs&type=&language=">"Apple: search "corelib"<span class="cs1-kern-right"></span>"</a>. <i>GitHub</i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Apple%3A+search+%22corelib%22&rft_id=https%3A%2F%2Fgithub.com%2Fapple%3Futf8%3D%25E2%259C%2593%26q%3Dcorelibs%26type%3D%26language%3D&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-100"><span class="mw-cite-backlink"><b><a href="#cite_ref-100">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/xcode/swiftui/">"Xcode - SwiftUI- Apple Developer"</a>. <i>developer.apple.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">February 1,</span> 2021</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=developer.apple.com&rft.atitle=Xcode+-+SwiftUI-+Apple+Developer&rft_id=https%3A%2F%2Fdeveloper.apple.com%2Fxcode%2Fswiftui%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-Intermediate_Swift2-101"><span class="mw-cite-backlink"><b><a href="#cite_ref-Intermediate_Swift2_101-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLanierGroff" class="citation web cs1">Lanier, Brian; Groff, Joe. <a rel="nofollow" class="external text" href="https://developer.apple.com/videos/wwdc/2014/?include=403#403">"Intermediate Swift"</a>. Apple<span class="reference-accessdate">. Retrieved <span class="nowrap">July 3,</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Intermediate+Swift&rft.pub=Apple&rft.aulast=Lanier&rft.aufirst=Brian&rft.au=Groff%2C+Joe&rft_id=https%3A%2F%2Fdeveloper.apple.com%2Fvideos%2Fwwdc%2F2014%2F%3Finclude%3D403%23403&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-102"><span class="mw-cite-backlink"><b><a href="#cite_ref-102">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMetz" class="citation magazine cs1">Metz, Cade. <a rel="nofollow" class="external text" href="https://www.wired.com/2014/06/apple-swift-language/">"Why Coders Are Going Nuts Over Apple's New Programming Language"</a>. <i><a href="/wiki/Wired_(magazine)" title="Wired (magazine)">Wired</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">July 16,</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=Wired&rft.atitle=Why+Coders+Are+Going+Nuts+Over+Apple%27s+New+Programming+Language&rft.aulast=Metz&rft.aufirst=Cade&rft_id=https%3A%2F%2Fwww.wired.com%2F2014%2F06%2Fapple-swift-language%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-103"><span class="mw-cite-backlink"><b><a href="#cite_ref-103">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://stackoverflow.com/a/26749528">"Error-Handling in Swift-Language"</a>. <i>stackoverflow.com</i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=stackoverflow.com&rft.atitle=Error-Handling+in+Swift-Language&rft_id=https%3A%2F%2Fstackoverflow.com%2Fa%2F26749528&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-104"><span class="mw-cite-backlink"><b><a href="#cite_ref-104">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/swiftlang/swift-evolution/blob/master/proposals/0007-remove-c-style-for-loops.md">"apple/swift-evolution"</a>. <i>GitHub</i><span class="reference-accessdate">. Retrieved <span class="nowrap">April 4,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=apple%2Fswift-evolution&rft_id=https%3A%2F%2Fgithub.com%2Fswiftlang%2Fswift-evolution%2Fblob%2Fmaster%2Fproposals%2F0007-remove-c-style-for-loops.md&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-105"><span class="mw-cite-backlink"><b><a href="#cite_ref-105">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/swiftlang/swift-evolution/blob/master/proposals/0004-remove-pre-post-inc-decrement.md">"apple/swift-evolution"</a>. <i>GitHub</i><span class="reference-accessdate">. Retrieved <span class="nowrap">April 4,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=apple%2Fswift-evolution&rft_id=https%3A%2F%2Fgithub.com%2Fswiftlang%2Fswift-evolution%2Fblob%2Fmaster%2Fproposals%2F0004-remove-pre-post-inc-decrement.md&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-106"><span class="mw-cite-backlink"><b><a href="#cite_ref-106">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBarbosa2016" class="citation web cs1">Barbosa, Greg (February 22, 2016). <a rel="nofollow" class="external text" href="https://9to5mac.com/2016/02/22/ibm-swift-cloud-kitura/">"IBM brings Swift to the cloud, releases web framework Kitura written in Apple's programming language"</a>. <i>9to5Mac</i><span class="reference-accessdate">. Retrieved <span class="nowrap">May 16,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=9to5Mac&rft.atitle=IBM+brings+Swift+to+the+cloud%2C+releases+web+framework+Kitura+written+in+Apple%27s+programming+language&rft.date=2016-02-22&rft.aulast=Barbosa&rft.aufirst=Greg&rft_id=https%3A%2F%2F9to5mac.com%2F2016%2F02%2F22%2Fibm-swift-cloud-kitura%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-107"><span class="mw-cite-backlink"><b><a href="#cite_ref-107">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation news cs1"><a rel="nofollow" class="external text" href="https://swift.org/blog/server-api-workgroup/">"Server APIs Work Group"</a>. <i>Swift.org</i>. October 25, 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">October 28,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=Swift.org&rft.atitle=Server+APIs+Work+Group&rft.date=2016-10-25&rft_id=https%3A%2F%2Fswift.org%2Fblog%2Fserver-api-workgroup%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-108"><span class="mw-cite-backlink"><b><a href="#cite_ref-108">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20210510193318/https://swift.org/server-apis/">"Swift.org"</a>. <i>Swift.org</i>. Archived from <a rel="nofollow" class="external text" href="https://swift.org/server-apis/">the original</a> on May 10, 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">October 28,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Swift.org&rft.atitle=Swift.org&rft_id=https%3A%2F%2Fswift.org%2Fserver-apis%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-109"><span class="mw-cite-backlink"><b><a href="#cite_ref-109">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.elementscompiler.com/silver">"RemObjects Elements Compiler"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">January 17,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=RemObjects+Elements+Compiler&rft_id=https%3A%2F%2Fwww.elementscompiler.com%2Fsilver&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-110"><span class="mw-cite-backlink"><b><a href="#cite_ref-110">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.swiftforarduino.com/">"Swift for Arduino"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Swift+for+Arduino&rft_id=https%3A%2F%2Fwww.swiftforarduino.com%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-111"><span class="mw-cite-backlink"><b><a href="#cite_ref-111">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFRose2020" class="citation web cs1">Rose, Jordan (April 1, 2020). <a rel="nofollow" class="external text" href="https://belkadan.com/blog/2020/04/Swift-on-Mac-OS-9/">"Swift on Mac OS 9"</a>. <i>-dealloc</i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=-dealloc&rft.atitle=Swift+on+Mac+OS+9&rft.date=2020-04-01&rft.aulast=Rose&rft.aufirst=Jordan&rft_id=https%3A%2F%2Fbelkadan.com%2Fblog%2F2020%2F04%2FSwift-on-Mac-OS-9%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASwift+%28programming+language%29" class="Z3988"></span></span> </li> </ol></div></div> <div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Swift_(programming_language)&action=edit&section=22" title="Edit section: External links"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><span class="official-website"><span class="url"><a rel="nofollow" class="external text" href="https://swift.org/">Official website</a></span></span> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q17118377#P856" title="Edit this at Wikidata"><img alt="Edit this at Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span></li> <li><a rel="nofollow" class="external text" href="https://developer.apple.com/swift/">Swift</a> at <a href="/wiki/Apple_Developer" title="Apple Developer">Apple Developer</a></li> <li><a rel="nofollow" class="external text" href="https://github.com/apple/swift">Swift source code</a> on <a href="/wiki/GitHub" title="GitHub">GitHub</a></li> <li><a rel="nofollow" class="external text" href="https://iosexamples.com/">Swift Example</a></li> <li><a rel="nofollow" class="external text" href="https://vapor.codes/">Server-side Swift: The Vapor Framework</a></li></ul> <div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r1236075235">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style></div><div role="navigation" class="navbox" aria-labelledby="Programming_languages" style="padding:3px"><table class="nowraplinks hlist mw-collapsible expanded navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Programming_languages" title="Template:Programming languages"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Programming_languages" title="Template talk:Programming languages"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Programming_languages" title="Special:EditPage/Template:Programming languages"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Programming_languages" style="font-size:114%;margin:0 4em"><a href="/wiki/Programming_language" title="Programming language">Programming languages</a></div></th></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><a href="/wiki/Comparison_of_programming_languages" title="Comparison of programming languages">Comparison</a></li> <li><a href="/wiki/Timeline_of_programming_languages" title="Timeline of programming languages">Timeline</a></li> <li><a href="/wiki/History_of_programming_languages" title="History of programming languages">History</a></li></ul> </div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Ada_(programming_language)" title="Ada (programming language)">Ada</a></li> <li><a href="/wiki/ALGOL" title="ALGOL">ALGOL</a> <ul><li><a href="/wiki/Simula" title="Simula">Simula</a></li></ul></li> <li><a href="/wiki/APL_(programming_language)" title="APL (programming language)">APL</a></li> <li><a href="/wiki/Assembly_language" title="Assembly language">Assembly</a></li> <li><a href="/wiki/BASIC" title="BASIC">BASIC</a> <ul><li><a href="/wiki/Visual_Basic" title="Visual Basic">Visual Basic</a> <ul><li><a href="/wiki/Visual_Basic_(classic)" title="Visual Basic (classic)">classic</a></li> <li><a href="/wiki/Visual_Basic_(.NET)" title="Visual Basic (.NET)">.NET</a></li></ul></li></ul></li> <li><a href="/wiki/C_(programming_language)" title="C (programming language)">C</a></li> <li><a href="/wiki/C%2B%2B" title="C++">C++</a></li> <li><a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a></li> <li><a href="/wiki/COBOL" title="COBOL">COBOL</a></li> <li><a href="/wiki/Erlang_(programming_language)" title="Erlang (programming language)">Erlang</a></li> <li><a href="/wiki/Forth_(programming_language)" title="Forth (programming language)">Forth</a></li> <li><a href="/wiki/Fortran" title="Fortran">Fortran</a></li> <li><a href="/wiki/Go_(programming_language)" title="Go (programming language)">Go</a></li> <li><a href="/wiki/Haskell" title="Haskell">Haskell</a></li> <li><a href="/wiki/Java_(programming_language)" title="Java (programming language)">Java</a></li> <li><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a></li> <li><a href="/wiki/Julia_(programming_language)" title="Julia (programming language)">Julia</a></li> <li><a href="/wiki/Kotlin_(programming_language)" title="Kotlin (programming language)">Kotlin</a></li> <li><a href="/wiki/Lisp_(programming_language)" title="Lisp (programming language)">Lisp</a></li> <li><a href="/wiki/Lua_(programming_language)" title="Lua (programming language)">Lua</a></li> <li><a href="/wiki/MATLAB" title="MATLAB">MATLAB</a></li> <li><a href="/wiki/ML_(programming_language)" title="ML (programming language)">ML</a></li> <li><a href="/wiki/Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a> <ul><li><a href="/wiki/Object_Pascal" title="Object Pascal">Object Pascal</a></li></ul></li> <li><a href="/wiki/Perl" title="Perl">Perl</a></li> <li><a href="/wiki/PHP" title="PHP">PHP</a></li> <li><a href="/wiki/Prolog" title="Prolog">Prolog</a></li> <li><a href="/wiki/Python_(programming_language)" title="Python (programming language)">Python</a></li> <li><a href="/wiki/R_(programming_language)" title="R (programming language)">R</a></li> <li><a href="/wiki/Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a></li> <li><a href="/wiki/Rust_(programming_language)" title="Rust (programming language)">Rust</a></li> <li><a href="/wiki/SQL" title="SQL">SQL</a></li> <li><a href="/wiki/Scratch_(programming_language)" title="Scratch (programming language)">Scratch</a></li> <li><a href="/wiki/Shell_script" title="Shell script">Shell</a></li> <li><a href="/wiki/Smalltalk" title="Smalltalk">Smalltalk</a></li> <li><a class="mw-selflink selflink">Swift</a></li> <li><i><a href="/wiki/List_of_programming_languages" title="List of programming languages">more...</a></i></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><span class="noviewer" typeof="mw:File"><span title="List-Class article"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/16px-Symbol_list_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/23px-Symbol_list_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/31px-Symbol_list_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <b>Lists:</b> <a href="/wiki/List_of_programming_languages" title="List of programming languages">Alphabetical</a></li> <li><a href="/wiki/List_of_programming_languages_by_type" title="List of programming languages by type">Categorical</a></li> <li><a href="/wiki/Generational_list_of_programming_languages" title="Generational list of programming languages">Generational</a></li> <li><a href="/wiki/Non-English-based_programming_languages" title="Non-English-based programming languages">Non-English-based</a></li> <li><span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <a href="/wiki/Category:Programming_languages" title="Category:Programming languages">Category</a></li></ul> </div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235"></div><div role="navigation" class="navbox" aria-labelledby="Software_by_Apple" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231"><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Apple_software" title="Template:Apple software"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Apple_software" title="Template talk:Apple software"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Apple_software" title="Special:EditPage/Template:Apple software"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Software_by_Apple" style="font-size:114%;margin:0 4em">Software by <a href="/wiki/Apple_Inc." title="Apple Inc.">Apple</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Template:Apple_operating_systems" title="Template:Apple operating systems">Operating systems</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Apple_DOS" title="Apple DOS">Apple DOS</a></li> <li><a href="/wiki/Apple_SOS" title="Apple SOS">Apple III (SOS)</a></li> <li><a href="/wiki/Classic_Mac_OS" title="Classic Mac OS">Classic Mac OS</a></li> <li><a href="/wiki/Darwin_(operating_system)" title="Darwin (operating system)">Darwin</a></li> <li><a href="/wiki/IOS" title="IOS">iOS</a></li> <li><a href="/wiki/IPadOS" title="IPadOS">iPadOS</a></li> <li><a href="/wiki/Apple_GS/OS" title="Apple GS/OS">GS/OS</a></li> <li><a href="/wiki/Apple_Lisa#Software" title="Apple Lisa">Lisa OS</a></li> <li><a href="/wiki/MacOS" title="MacOS">macOS (OS X)</a></li> <li><a href="/wiki/MacWorks_XL" title="MacWorks XL">MacWorks XL</a></li> <li><a href="/wiki/Apple_ProDOS" title="Apple ProDOS">ProDOS</a></li> <li><a href="/wiki/TvOS" title="TvOS">tvOS</a></li> <li><a href="/wiki/Apple_Vision_Pro#Software" title="Apple Vision Pro">visionOS</a></li> <li><a href="/wiki/WatchOS" title="WatchOS">watchOS</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Consumer</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Bento_(database)" title="Bento (database)">Bento</a></li> <li><a href="/wiki/Clips_(software)" title="Clips (software)">Clips</a></li> <li><a href="/wiki/Final_Cut_Express" title="Final Cut Express">Final Cut Express</a></li> <li><a href="/wiki/Front_Row_(software)" title="Front Row (software)">Front Row</a></li> <li><a href="/wiki/GarageBand" title="GarageBand">GarageBand</a></li> <li><a href="/wiki/ICloud" title="ICloud">iCloud</a></li> <li><a href="/wiki/IDVD" title="IDVD">iDVD</a></li> <li><a href="/wiki/ILife" title="ILife">iLife</a></li> <li><a href="/wiki/IMovie" title="IMovie">iMovie</a></li> <li><a href="/wiki/ITunes" title="ITunes">iTunes</a></li> <li><a href="/wiki/IWork" title="IWork">iWork</a> <ul><li><a href="/wiki/Keynote_(presentation_software)" title="Keynote (presentation software)">Keynote</a></li> <li><a href="/wiki/Pages_(word_processor)" title="Pages (word processor)">Pages</a></li> <li><a href="/wiki/Numbers_(spreadsheet)" title="Numbers (spreadsheet)">Numbers</a></li></ul></li> <li><a href="/wiki/IPhoto" title="IPhoto">iPhoto</a></li> <li><a href="/wiki/Logic_Express" class="mw-redirect" title="Logic Express">Logic Express</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Professional</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Aperture_(software)" title="Aperture (software)">Aperture</a></li> <li><a href="/wiki/Apple_Media_Tool" title="Apple Media Tool">Apple Media Tool</a></li> <li><a href="/wiki/Apple_Qmaster" title="Apple Qmaster">Apple Qmaster</a></li> <li><a href="/wiki/Color_(software)" title="Color (software)">Color</a></li> <li><a href="/wiki/DVD_Studio_Pro" title="DVD Studio Pro">DVD Studio Pro</a></li> <li><a href="/wiki/FileMaker" title="FileMaker">FileMaker</a></li> <li><a href="/wiki/Final_Cut_Pro" title="Final Cut Pro">Final Cut Pro</a> <ul><li><a href="/wiki/Motion_(software)" title="Motion (software)">Motion</a></li> <li><a href="/wiki/Compressor_(software)" title="Compressor (software)">Compressor</a></li> <li><a href="/wiki/Final_Cut_Studio" title="Final Cut Studio">Final Cut Studio</a></li> <li><a href="/wiki/Cinema_Tools" title="Cinema Tools">Cinema Tools</a></li></ul></li> <li><a href="/wiki/Logic_Studio" title="Logic Studio">Logic Studio</a></li> <li><a href="/wiki/Logic_Pro" title="Logic Pro">Logic Pro</a></li> <li><a href="/wiki/MacProject" title="MacProject">MacProject</a></li> <li><a href="/wiki/MacTerminal" title="MacTerminal">MacTerminal</a></li> <li><a href="/wiki/MainStage_(software)" title="MainStage (software)">MainStage</a></li> <li><a href="/wiki/Shake_(software)" title="Shake (software)">Shake</a></li> <li><a href="/wiki/Soundtrack_Pro" title="Soundtrack Pro">Soundtrack Pro</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Education</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Classroom_(Apple)" title="Classroom (Apple)">Classroom</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Bundled</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/AppleWorks" title="AppleWorks">AppleWorks</a></li> <li><a href="/wiki/Apple_Books" title="Apple Books">Books</a></li> <li><a href="/wiki/Calendar_(Apple)" title="Calendar (Apple)">Calendar</a></li> <li><a href="/wiki/Contacts_(Apple)" title="Contacts (Apple)">Contacts</a></li> <li><a href="/wiki/Apple_Mail" title="Apple Mail">Mail</a></li> <li><a href="/wiki/Messages_(Apple)" title="Messages (Apple)">Messages</a></li> <li><a href="/wiki/FaceTime" title="FaceTime">FaceTime</a></li> <li><a href="/wiki/MacDraw" title="MacDraw">MacDraw</a></li> <li><a href="/wiki/MacPaint" title="MacPaint">MacPaint</a></li> <li><a href="/wiki/MacWrite" title="MacWrite">MacWrite</a></li> <li><a href="/wiki/Music_(app)" title="Music (app)">Music</a></li> <li><a href="/wiki/Passwords_(Apple)" title="Passwords (Apple)">Passwords</a></li> <li><a href="/wiki/Photo_Booth" title="Photo Booth">Photo Booth</a></li> <li><a href="/wiki/Photos_(Apple)" title="Photos (Apple)">Photos</a></li> <li><a href="/wiki/Apple_Podcasts" title="Apple Podcasts">Podcasts</a></li> <li><a href="/wiki/Safari_(web_browser)" title="Safari (web browser)">Safari</a></li> <li><a href="/wiki/TextEdit" title="TextEdit">TextEdit</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Server</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Apple_Remote_Desktop" title="Apple Remote Desktop">Apple Remote Desktop</a></li> <li><a href="/wiki/FoundationDB" title="FoundationDB">FoundationDB</a></li> <li><a href="/wiki/MacOS_Server" class="mw-redirect" title="MacOS Server">macOS Server</a></li> <li><a href="/wiki/WebObjects" title="WebObjects">WebObjects</a></li> <li><a href="/wiki/Xgrid" title="Xgrid">Xgrid</a></li> <li><a href="/wiki/Xsan" title="Xsan">Xsan</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Apple_Developer_Tools" title="Apple Developer Tools">Developer</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/HyperCard" title="HyperCard">HyperCard</a></li> <li><a href="/wiki/IBooks_Author" class="mw-redirect" title="IBooks Author">iBooks Author</a></li> <li><a href="/wiki/Instruments_(software)" title="Instruments (software)">Instruments</a></li> <li><a href="/wiki/Interface_Builder" title="Interface Builder">Interface Builder</a></li> <li><a href="/wiki/Quartz_Composer" title="Quartz Composer">Quartz Composer</a></li> <li><a href="/wiki/ResEdit" title="ResEdit">ResEdit</a></li> <li><a class="mw-selflink selflink">Swift</a></li> <li><a href="/wiki/Xcode" title="Xcode">Xcode</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Internet</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/MobileMe#.Mac" title="MobileMe">.Mac</a></li> <li><a href="/wiki/Dashcode" title="Dashcode">Dashcode</a></li> <li><a href="/wiki/IAd_Producer" title="IAd Producer">iAd Producer</a></li> <li><a href="/wiki/IChat" title="IChat">iChat</a></li> <li><a href="/wiki/IWeb" title="IWeb">iWeb</a></li> <li><a href="/wiki/MobileMe" title="MobileMe">MobileMe</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">on <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/List_of_macOS_built-in_apps#AirPort_Utility" class="mw-redirect" title="List of macOS built-in apps">AirPort Utility</a></li> <li><a href="/wiki/AppleWorks" title="AppleWorks">AppleWorks</a></li> <li><a href="/wiki/Bonjour_(software)" title="Bonjour (software)">Bonjour</a></li> <li><a href="/wiki/Boot_Camp_(software)" title="Boot Camp (software)">Boot Camp</a></li> <li><a href="/wiki/ICloud" title="ICloud">iCloud</a></li> <li><a href="/wiki/ITunes" title="ITunes">iTunes</a></li> <li><a href="/wiki/MobileMe" title="MobileMe">MobileMe</a></li> <li><a href="/wiki/QuickTime" title="QuickTime">QuickTime</a></li> <li><a href="/wiki/List_of_macOS_built-in_apps#Software_Update" class="mw-redirect" title="List of macOS built-in apps">Software Update</a></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div><a href="/wiki/List_of_Apple_II_application_software" title="List of Apple II application software">List of Apple II application software</a> • <a href="/wiki/List_of_Mac_software" title="List of Mac software">List of Mac software</a> • <a href="/wiki/List_of_old_Macintosh_software" class="mw-redirect" title="List of old Macintosh software">List of old Macintosh software</a></div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235"></div><div role="navigation" class="navbox authority-control" aria-label="Navbox" style="padding:3px"><table class="nowraplinks hlist navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Help:Authority_control" title="Help:Authority control">Authority control databases</a>: National <span class="mw-valign-text-top noprint" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q17118377#identifiers" title="Edit this at Wikidata"><img alt="Edit this at Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/1066617112">Germany</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.loc.gov/authorities/sh2015001571">United States</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://catalogue.bnf.fr/ark:/12148/cb17039945c">France</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://data.bnf.fr/ark:/12148/cb17039945c">BnF data</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="http://olduli.nli.org.il/F/?func=find-b&local_base=NLX10&find_code=UID&request=987007412504105171">Israel</a></span></li></ul></div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐api‐ext.codfw.main‐7556f8b5dd‐r87c6 Cached time: 20241124020457 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 1.201 seconds Real time usage: 1.366 seconds Preprocessor visited node count: 7438/1000000 Post‐expand include size: 233845/2097152 bytes Template argument size: 6821/2097152 bytes Highest expansion depth: 21/100 Expensive parser function count: 78/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 436067/5000000 bytes Lua time usage: 0.745/10.000 seconds Lua memory usage: 8837269/52428800 bytes Number of Wikibase entities loaded: 1/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 1154.836 1 -total 39.73% 458.803 1 Template:Reflist 30.13% 348.006 97 Template:Cite_web 21.02% 242.701 2 Template:Infobox 18.83% 217.427 1 Template:Infobox_programming_language 13.85% 159.989 1 Template:Infobox_software/simple 11.22% 129.602 2 Template:Wikidata 7.94% 91.651 2 Template:Navbox 7.82% 90.255 1 Template:Programming_languages 7.70% 88.903 1 Template:Short_description --> <!-- Saved in parser cache with key enwiki:pcache:idhash:42946389-0!canonical and timestamp 20241124020515 and revision id 1259229976. Rendering was triggered because: edit-page --> </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="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Swift_(programming_language)&oldid=1259229976">https://en.wikipedia.org/w/index.php?title=Swift_(programming_language)&oldid=1259229976</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:Swift_(programming_language)" title="Category:Swift (programming language)">Swift (programming language)</a></li><li><a href="/wiki/Category:Apple_Inc._software" title="Category:Apple Inc. software">Apple Inc. software</a></li><li><a href="/wiki/Category:Programming_languages" title="Category:Programming languages">Programming languages</a></li><li><a href="/wiki/Category:High-level_programming_languages" title="Category:High-level programming languages">High-level programming languages</a></li><li><a href="/wiki/Category:Declarative_programming_languages" title="Category:Declarative programming languages">Declarative programming languages</a></li><li><a href="/wiki/Category:Object-oriented_programming_languages" title="Category:Object-oriented programming languages">Object-oriented programming languages</a></li><li><a href="/wiki/Category:Functional_languages" title="Category:Functional languages">Functional languages</a></li><li><a href="/wiki/Category:Pattern_matching_programming_languages" title="Category:Pattern matching programming languages">Pattern matching programming languages</a></li><li><a href="/wiki/Category:Programming_languages_created_in_2014" title="Category:Programming languages created in 2014">Programming languages created in 2014</a></li><li><a href="/wiki/Category:Statically_typed_programming_languages" title="Category:Statically typed programming languages">Statically typed programming languages</a></li><li><a href="/wiki/Category:Systems_programming_languages" title="Category:Systems programming languages">Systems programming languages</a></li><li><a href="/wiki/Category:Cross-platform_free_software" title="Category:Cross-platform free software">Cross-platform free software</a></li><li><a href="/wiki/Category:Software_using_the_Apache_license" title="Category:Software using the Apache license">Software using the Apache license</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:CS1_errors:_missing_title" title="Category:CS1 errors: missing title">CS1 errors: missing title</a></li><li><a href="/wiki/Category:CS1_errors:_bare_URL" title="Category:CS1 errors: bare URL">CS1 errors: bare URL</a></li><li><a href="/wiki/Category:CS1_errors:_generic_name" title="Category:CS1 errors: generic name">CS1 errors: generic name</a></li><li><a href="/wiki/Category:Webarchive_template_wayback_links" title="Category:Webarchive template wayback links">Webarchive template wayback links</a></li><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_is_different_from_Wikidata" title="Category:Short description is different from Wikidata">Short description is different from Wikidata</a></li><li><a href="/wiki/Category:Use_mdy_dates_from_October_2018" title="Category:Use mdy dates from October 2018">Use mdy dates from October 2018</a></li><li><a href="/wiki/Category:Wikipedia_articles_that_are_too_technical_from_June_2018" title="Category:Wikipedia articles that are too technical from June 2018">Wikipedia articles that are too technical from June 2018</a></li><li><a href="/wiki/Category:All_articles_that_are_too_technical" title="Category:All articles that are too technical">All articles that are too technical</a></li><li><a href="/wiki/Category:Articles_with_excerpts" title="Category:Articles with excerpts">Articles with excerpts</a></li><li><a href="/wiki/Category:Articles_with_example_Swift_code" title="Category:Articles with example Swift code">Articles with example Swift code</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 24 November 2024, at 02:04<span class="anonymous-show"> (UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Swift_(programming_language)&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</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> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-4dnzt","wgBackendResponseTime":236,"wgPageParseReport":{"limitreport":{"cputime":"1.201","walltime":"1.366","ppvisitednodes":{"value":7438,"limit":1000000},"postexpandincludesize":{"value":233845,"limit":2097152},"templateargumentsize":{"value":6821,"limit":2097152},"expansiondepth":{"value":21,"limit":100},"expensivefunctioncount":{"value":78,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":436067,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 1154.836 1 -total"," 39.73% 458.803 1 Template:Reflist"," 30.13% 348.006 97 Template:Cite_web"," 21.02% 242.701 2 Template:Infobox"," 18.83% 217.427 1 Template:Infobox_programming_language"," 13.85% 159.989 1 Template:Infobox_software/simple"," 11.22% 129.602 2 Template:Wikidata"," 7.94% 91.651 2 Template:Navbox"," 7.82% 90.255 1 Template:Programming_languages"," 7.70% 88.903 1 Template:Short_description"]},"scribunto":{"limitreport-timeusage":{"value":"0.745","limit":"10.000"},"limitreport-memusage":{"value":8837269,"limit":52428800}},"cachereport":{"origin":"mw-api-ext.codfw.main-7556f8b5dd-r87c6","timestamp":"20241124020457","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Swift (programming language)","url":"https:\/\/en.wikipedia.org\/wiki\/Swift_(programming_language)","sameAs":"http:\/\/www.wikidata.org\/entity\/Q17118377","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q17118377","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2014-06-02T18:50:16Z","dateModified":"2024-11-24T02:04:55Z","headline":"general-purpose, multi-paradigm, compiled programming language"}</script> </body> </html>