www.wikidata.uk-ua.nina.az
U Vikipediyi ye statti pro inshi znachennya cogo termina Svift Swift bagatoparadigmova kompilovana mova programuvannya rozroblena kompaniyeyu Apple dlya togo shob spivisnuvati z Objective C i buti stijkishoyu do pomilkovogo kodu Swift bula predstavlena na konferenciyi rozrobnikiv WWDC 2014 1 Mova pobudovana z LLVM kompilyatorom vklyuchenogo u Xcode 6 beta Bezkoshtovnij posibnik movi programuvannya Swift dostupnij dlya zavantazhennya u magazini iBooks 2 Swift mova programuvannya Paradigma Bagatoparadigmova protokol oriyentovana ob yektno oriyentovana funkcijna imperativna blochno strukturovana Data poyavi 2014Tvorci Kris Latner ta Apple Inc Rozrobnik Apple Inc Ostannij reliz 5 25 bereznya 2019 10 misyaciv nazad 5 grudnya 2017 5 rokiv tomu 2017 12 05 Sistema tipizaciyi statichna suvora vivid tipivPid vplivom vid Objective C Rust Haskell Ruby Python C CLU Vplinula na RustOperacijna sistema iOS macOS watchOS Linux tvOSLicenziya Apache License pochinayuchi z Swift 2 2 Propriyetarna do versiyi Swift 2 2 Zvichajni rozshirennya fajliv swiftRepozitorij vihidnogo kodu github com apple swiftVebsajt swift org Swift u VikishovishiKompilyator Swift pobudovanij z vikoristannyam tehnologij vilnogo proyektu LLVM Swift uspadkovuye najkrashi elementi mov C i Objective C tomu sintaksis zvichnij dlya znajomih z nimi rozrobnikiv ale vodnochas vidriznyayetsya vikoristannyam zasobiv avtomatichnogo rozpodilu pam yati i kontrolyu perepovnennya zminnih i masiviv sho znachno zbilshuye nadijnist i bezpeku kodu Pri comu Swift programi kompilyuyutsya u mashinnij kod sho dozvolyaye zabezpechiti visoku shvidkodiyu Za zayavoyu Apple kod Swift vikonuyetsya v 1 3 razi shvidshe kodu na Objective C Zamist zbiracha smittya Objective C v Swift vikoristovuyutsya zasobi pidrahunku posilan na ob yekti a takozh nadani u LLVM optimizaciyi taki yak avtovektorizaciya Mova takozh proponuye nizku suchasnih metodiv programuvannya takih yak zamikannya uzagalnene programuvannya lyambda virazi kortezhi i slovnikovi tipi shvidki operaciyi nad kolekciyami elementi funkcijnogo programuvannya Osnovnim zastosuvannyam Swift ye rozrobka koristuvackih zastosunkiv dlya macOS iOS tvOS watchOS z vikoristannyam tulkita Cocoa i Cocoa Touch Pri comu Swift nadaye ob yektnu model sumisnu z Objective C Sircevij kod movoyu Swift mozhe zmishuvatisya z kodom na S i Objective C v odnomu proyekti Swift shilno integrovano do vlasnickogo seredovisha rozrobki Xcode prote mozhe buti viklikano z terminalu sho umozhlivlyuye yiyi vikoristannya na operacijnij sistemah vidminnih vid macOS napriklad na Linux Okremo varto vidznachiti sho Swift vid kompaniyi Apple ne varto plutati z dosit davno rozroblyuvanoyu skriptovoyu movoyu Swift nacilenoyi na bagatoniteve programuvannya i postavlenogo pid vilnoyu licenziyeyu Apache Zmist 1 Istoriya 2 Osoblivosti 2 1 Zminni ta konstanti 2 2 Upravlinnya pam yattyu 2 2 1 Upravlinnya pam yattyu dlya tipiv znachen 2 2 2 Upravlinnya pam yattyu za dopomogoyu ARC 2 2 3 Ruchne upravlinnya pam yattyu 2 3 Inkapsulyaciya 2 4 Polya ta funkciyi tipu 2 5 Uzagalnennya 2 6 Tipi perelichuvannya 2 7 Rozshirennya 2 8 Uspadkuvannya 2 9 Implementaciya protokoliv 3 Priklad kodu 4 Primitki 5 Div takozh 6 PosilannyaIstoriya RedaguvatiRozrobku movi Swift pochav Chris Lattner u spivpraci iz bagatma inshimi programistami Ideyi dlya Swift zapozicheni iz takih mov programuvannya yak Objective C Rust Haskell Ruby Python C CLU ta bagatoh inshih iz spisku 3 2 chervnya 2014 roku na Vsesvitnij konferenciyi rozrobnikiv vpershe oficijno bulo predstavleno dodatok napisanij movoyu Swift 4 Beta versiya movi stala dostupna dlya zareyestrovanih rozrobnikiv na sajti kompaniyi ale v Apple ne garantuvali sho predstavlena versiya bude sumisna iz finalnoyu versiyeyu 4 Takozh bulo predstavleno bezplatnij posibnik po vikoristannyu Swift obsyagom 500 storinok na servisi IBooks 5 Versiya Swift 1 0 bula vipushena 9 veresnya 2014 roku razom iz Gold Master versiyeyu Xcode 6 0 dlya iOS 6 Swift 1 1 bulo prezentovano 22 zhovtnya 2014 roku razom iz Xcode 6 1 7 Swift 1 2 prezentovano 8 kvitnya 2015 iz Xcode 6 3 8 Swift 2 0 prezentovano na WWDC 2015 Ogoloshennya pro rozrobku ta podalshi plani Swift 3 0 vidbulos 3 grudnya 2015 9 U grudni 2015 roku IBM ogolosila pro zapusk sajtu Swift Sandbox yakij dozvolyaye rozrobnikam pisati kod v odnomu poli ta bachiti rezultat vikonannya v inshomu 10 U sichni 2018 Swift Sandbox bulo viznano zastarilim V kvitni 2016 roku zhurnalisti vidannya The Next Web povidomili sho Google rozglyadaye mozhlivist polipshiti riven pidtrimki abo Swift abo Kotlin platformoyu Android 11 Zgodom same mova Kotlin stala rekomendovanoyu dlya rozrobki na platformi Android 12 Pid chas WWDC 2019 Apple anonsuvala SwiftUI novij UI frejmvork dlya programnih platform Apple zasnovanij na principah deklarativnogo dizajnu U kvitni 2020 roku vijshov vidkritij neoficijnij pereklad posibnika po vikoristannyu Swift 13 Z versiyi 5 3 yaka vijshla u veresni 2020 roku pochalasya pidtrimka Swift dlya Windows 14 Osoblivosti RedaguvatiSwift rozroblyavsya yak zamina Objective C yak mova sho zaluchaye suchasni pidhodi u proyektuvanni programnih sistem ta maye prostij sintaksis Z tochki zoru sintaksisu Swift nablizheno do inshih populyarnih OOP mov takih yak C ta Java Vikoristovuyetsya viklik metodiv cherez krapku dlya deklaruvannya klasiv ta struktur vikoristovuyutsya figurni duzhki Dlya upravlinnya pam yattyu vikoristovuyetsya ARC 15 avtomatichnij lichilnik posilan Zagalom vidsutnya sistema yavnogo upravlinnya pam yattyu prote mozhlive yavne stvorennya nebezpechnih vkazivnikiv dlya vzayemodiyi z kodom na C ta Objective C Za zamovchuvannyam posilannya ne mozhut nabuvati nulovih znachen yaki v inshih movah poznachayut vidsutnist ob yekta Natomit vikoristovuyutsya opcionali specialnij tip danih yakij yavno vkazuye na vidsutnist ob yektu za im yam 16 Ekzemplyari klasiv ta funkciyi ye tipami sho peredayutsya za posilannyam tipi posilannya a ekzemplyari struktur perelichuvan ta kortezhiv peredayutsya za znachennyam tipi znachennya 17 Pidtrimuyutsya protokoli uspadkuvannya uzagalneni tipi ta funkciyi Tipizaciya statichna prote informaciya pro tipi pevnoyu miroyu dostupna na etapi vikonannya Dlya programnih platform Apple vikoristovuyetsya okrema versiya Swift yaka tisno integrovana z Objective C ta maye pidtrimku perevazhnoyi bilshosti funkcij ciyeyi movi u tomu chisli yiyi rantajmu na bazi yakogo zasnovani klyuchovi frejmvorki ta biblioteki vid Apple Mozhlivosti dlya metaprogramuvannya na etapi vikonannya praktichno vidsutni ale isnuyut konstrukciyi dlya variativnoyi kompilyaciyi yaki vrahovuyut cilovu platformu ta yiyi versiyu a takozh inshi atributi zadani koristuvachem Zminni ta konstanti Redaguvati Bud yake znachennya maye buti inicializovano do svogo pershogo vikoristannya Konstantoyu u Swift ye znachennya sho viznachayetsya lishe odin raz Znachennya konstanti ne obov yazkovo maye buti vidomim na etapi kompilyaciyi tak yiyi mozhe buti stvoreno pid chas stvorennya ob yekta chi u rezultati vikonannya umovnih operatoriv Zminna mozhe buti modifikovana neobmezhenu kilkist raziv Upravlinnya pam yattyu Redaguvati Vikoristovuyetsya dekilka sposobiv upravlinnya pam yattyu ARC avtomatichnij lichilnik posilan upravlinnya pam yattyu dlya tipiv znachen ruchne upravlinnya pam yattyu Upravlinnya pam yattyu dlya tipiv znachen Redaguvati Pam yat dlya tipiv znachen vbudovani primitivni tipi strukturi perelichuvannya kortezhi mozhe buti vidilena na steku abo na kupi Na steku vona vidilyayetsya u tomu vipadku yaksho znachennya ne mistitsya u tipi posilanni ta ne mistit tip posilannya U takomu razi na etapi kompilyaciyi mozhe buti obrahovana kilkist pam yati dlya vidilennya a takozh viznacheni tochki vidilennya ta zvilnennya pam yati V inshomu razi vidbuvayetsya vidilennya pam yati na kupi yake ye povilnishim ta obrahovuyetsya pid chas vikonannya programi 18 Z tochki zoru koristovuacha strukturi stvoryuyutsya pid chas pershoyi inicializaciyi kopiyuyutsya pid chas kozhnoyi operaciyi prisvoyennya ta vivilnyayutsya pislya vihodu z zoni vidimosti Faktichno vikoristovuyetsya vidkladene kopiyuvannya tobto kopiyuvannya pislya pershoyi zmini Takozh z tochki zoru semantiki zmina bud yakogo polya strukturi ye stvorennyam novoyi strukturi na bazi staroyi zi zminenim polem tomu nemozhlivo zminiti znachennya polya strukturi viznachenoyi konstantoyu Dlya peredachi strukturi za posilannyam vikoristovuyetsya klyuchove slovo inout prote posilannya na strukturi ne mozhna zberigati bezpechno Upravlinnya pam yattyu za dopomogoyu ARC Redaguvati Z tochki zoru koristuvacha tipi posilannya klasi stvoryuyutsya pid chas pershoyi inicializaciyi peredayutsya za posilannyam pid chas operaciyi prisvoyennya ta vivilnyayutsya z pam yati todi koli na ob yekt bilshe nemaye posilan Kozhne znachennya tipu posilannya mistit lichilnik znachennya yakogo dorivnyuye 1 na moment stvorennya Pid chas stvorennya kozhnogo silnogo posilannya na ob yekt lichilnik zbilshuyetsya na 1 Pid chas viluchennya posilannya znachennya lichilnika zmenshuyetsya na 1 Koli znachennya lichilnika staye rivnim 0 ob yekt vivilnyayetsya z pam yati Mozhlive utvorennya cikliv posilan koli dva ob yekti sho vijshli z oblasti vidimosti posilayutsya odne na odnogo i utrimuyut odne odnogo v pam yati Dlya uniknennya takih cikliv vikoristovuyutsya slabki posilannya yaki ne vrahovuyutsya u roboti lichilnika Slabki posilannya poznachayutsya klyuchovimi slovami weak ta unowned Ruchne upravlinnya pam yattyu Redaguvati Mozhlive stvorennya nebezpechnih vkazivnikiv upravlinnya stvorennyam na vivilnennyam yakih zdijsnyuyetsya vruchnu odnak kozhen z tipiv nebpzechnih vkazivnikiv ne maye vsogo naboru mozhlivostej yaki ye u takogo vkazivnika u movi C Takozh dlya prishvidshennya roboti mozhut buti vikoristani ob yekti NSAutoreleasePool yaki dozvolyayut zvilniti deyaku kilkist ob yektiv u viznachenij programistom chas Inkapsulyaciya Redaguvati Swift pidtrimuye taki oblasti vidimosti private vidimist lishe u mezhah tipu fileprivate vidimist lishe u mezhah fajlu internal ne poznachayetsya vidimist u mezhah modulya public vidimist poza modulem bez mozhlivosti pereviznachennya dlya poliv ta uspadkuvannya dlya klasu open vidimist poza modulem iz mozhlivostyami pereviznachennya dlya poliv ta uspadkuvannya dlya klasu U Swift nemaye analoga protected vidimist tilki dlya klasiv nashadkiv u inshih movah programuvannya fileprivate chasto vikoristovuyetsya dlya zv yazuvannya tipiv ta rozshiren zi zberezhennyah zagalnoyi inkapsulyaciyi na rivni fajlu Polya ta funkciyi tipu Redaguvati Obchislyuvana vlastivist sintaksichnij cukor dlya funkciyi bez argumentiv viklik yakoyi viglyadaye yak dostup do polya Liniva vlastivist obchislyuyetsya pid chas pershogo vikliku i dali ye staloyu Vlastivist mozhe zberigati u sobi znachennya abo jogo vidobrazhati Mozhna vstanoviti funkciyi yaki budut vikonuvatisya pid chas otrimannya znachennya get pid chas prisvoyennya set do ta pislya prisvoyennya willSet ta didSet Funkciya ne zberigaye stanu mozhe mati vid 0 argumentiv ta povertati rezultat Bud yaki funkciyi ta polya krim linvih mozhut buti statichnimi tobto buti polem abo funkciyeyu tipu a ne ekzemplyaru tipu Pri comu isnuye dva poznachennya statichnosti class dlya poliv sho mozhut buti pereviznacheni ta static dlya poliv yaki ne mozhut buti pereviznacheni u klasi nashadku Takozh bud yake pole mozhe buti poznachene yak final tobto pole sho ne mozhe buti pereviznachene static ta final class ye sinonimichnimi dlya poznachennya polya klasu Uzagalnennya Redaguvati Swift pidtrimuye rozvinutu sistemu uzagalnen Bud yakij tip chi funkciya mozhe buti uzagalneno za dopomogoyu parametriv sho dodayutsya pislya imeni u kutovih duzhkah Dlya takih tipiv mozhe buti vstanovleno obmezhennya na rivnist deyakim inshih tipam implementaciyu protokoliv chi na uspadkuvannya vid deyakih tipiv Pri comu uzagalnennya dlya protokoliv tak zvani asocijovani tipi mozhut mati navit vimogu na implementaciyu cogo zh protokolu rekursivno Ce porodzhuye teoretichnu Tyuring povnotu dlya uzagalnen yaka ne realizovana u realnih kompilyatorah ta yiyi realizaciya ne planuyetsya Vstanovleno obmezhennya na kilkist takih vkladen Tipi perelichuvannya Redaguvati Tipi perelichuvannya mozhut buti predstavleni ryadkami cilimi chislami ta chislami z ruhomoyu komoyu Yaksho voni ne predstavleni cimi tipami kozhen variant perelichuvannya mozhe mati asocijovani z nim znachennya yak anonimni tak i poimenovani Dlya roboti z tipami perelichuvannya vikoristovuyutsya operatori if case guard case for caseta switch Okremim vipadkom perelichuvan ye opcionali Ce tipi sho zaminyuyut u Swift koncepciyu nulovogo ukaznika na poznachennya vidsutnosti ob yekta Tip Optional skladayetsya z dvoh variantiv none ta some T tobto mozhe prijmati znachennya abo vidsutnosti abo nayavnosti ob yekta Rozkrittya opcionalu nazivayetsya otrimannya jogo znachennya Dlya cogo tipu vprovadzhena velika kilkist sintaksichnogo cukru lancyuzhok opcionaliv primusove ta umovne rozkrittya opcionalu operator dlya poznachennya alternativi pri rozkritti znachennya none Dlya poznachennya zminnih opcionaliv ye specialnij literal takozh ye literal sho vkazuye na rozkritist znachennya za zamovchuvannyam za vidsutnosti znachennya stanetsya pomilka Rozshirennya Redaguvati U Swift mozhna stvoryuvati rozshirennya tipiv U nih mozhna viznachiti dodatkovi funkciyi ta polya dlya ob yektiv tipu ta samih tipiv prote nemozhlivo zberigati znachennya Mozhna rozshiryuvati takozh okremi vipadki uzagalnenih tipiv napriklad vstanovti sho rozshirennya stosuyetsya lishe tipu sho parametrizovano znachennyam yake vidpovidaye pevnomu protokolu Uspadkuvannya Redaguvati Sistema uspadkuvannya Swft harakterizuyetsya takimi osoblivostyami Uspadkuvannya pidtrimuyetsya lishe dlya klasiv Mnozhinne uspadkuvannya nemozhlive Mozhlive pereviznachennya yak poliv klasu tak i poliv ob yektu klasu Implementaciya protokoliv Redaguvati Protokol u Swift viznachaye deyaki vimogi do tipu Ci vimogi mozhut stosuvatisya nayavnosti funkcij u tipi zminnih tipu neobhidnosti viznachennya inshih tipiv danim tipom asocijovani tipi klasu vid yakogo maye uspadkuvatisya klas chi inshih protokoliv yaki maye implementuvati klas Bud yakij tip u Swift mozhe implementuvati protokol Takozh implementaciya protokolu dlya bud yakogo tipu mozhliva za dopomogoyu rozshirennya Zminni sho mayut tip protokolu posidayut okreme misce u sistemi tipiv Swift Taki zminni nazivayutsya ekzistencialami ta do nih vikoristovuyetsya dinamichna dispetcherizaciya Stvorennya ekzistencialiv nemozhlivo dlya protokoliv yaki mayut vimogi do asocijovanih tipiv u tomu chisli i posilayutsya na tip nashadok Self u svoyih vimogah Prichina cogo polyagaye v tomu sho dinamichna dispetcherizaciya u Swift ne mozhe buti vikoristana dlya viznachennya takih pov yazanih tipiv Priklad kodu Redaguvati ce priklad odnoryadkovogo komentarya ce takozh komentar ale napisanij v dekilka ryadkiv bagatoryadkovi komentari mozhut buti vkladeni tomu vi mozhete pomishati komentari v bloki ogoloshennya zminnih u Swift pochinayetsya iz sluzhbovogo slova var pislya yakogo povinni buti im ya zminnoyi tip zminnoyi ta pochatkove znachennya var explicitDouble Double 70 yaksho tip zminnoyi ne vkazano Swift obere jogo avtomatichno na osnovi pochatkovogo znachennya var implicitInteger 70 var implicitDouble 70 0 var 国 日本 ogoloshennya konstanti u Swift pochinayetsya iz sluzhbovogo slova let pislya yakogo povinni buti im ya zminnoyi tip zminnoyi ta pochatkove znachennya let numberOfBananas Int 10 yaksho tip konstanti ne vkazano Swift obere jogo avtomatichno na osnovi pochatkovogo znachennya let numberOfApples 3 let numberOfOranges 5 znachennya zminnih ta konstant mozhut buti vstavleni u ryadki zminni tipu string nastupnim chinom let appleSummary I have numberOfApples apples let fruitSummary I have numberOfApples numberOfOranges pieces of fruit ogoloshennya masivu danih var fruits mango kiwi avocado priklad klyuchovogo slova if obchislyuvanih vlastivostej isEmpty ta count if fruits isEmpty print Frukti vidsutni u masivi danih else print V masivi danih ye fruits count fruktiv priklad ogoloshennya slovnika dictionary z 4 elementiv kozhen iz yakih mistit im ya ta vik let people Anna 67 Beto 8 Jack 33 Sam 25 vikoristovuyuchi mozhlivosti movi Swift mi nadrukuyemo obidva znachennya v yedinomu cikli for name age in people print name is age years old ogoloshennya metodiv pochinayetsya iz sluzhbovogo slova func tip rezultatu opisuyetsya pislya gt func sayHello to personName String gt String let greeting Hello personName return greeting yak vivesti v konsoli slovospoluchennya Hello Jane vikoristovuyuchi vishe opisanij metod print sayHello to Jane Primitki Redaguvati Apple announces Swift a new programming language for iOS Arhiv originalu za 26 grudnya 2015 The Swift Programming Language Arhiv originalu za 3 chervnya 2014 Procitovano 3 chervnya 2014 Lattner Chris 3 chervnya 2014 Chris Lattner s Homepage Chris Lattner Arhiv originalu za 22 grudnya 2015 Procitovano 3 chervnya 2014 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 Objective C Rust Haskell Ruby Python C CLU and far too many others to list a b Platforms State of the Union Session 102 Apple Worldwide Developers Conference June 2 2014 The Swift Programming Language Apple 2 chervnya 2014 Arhiv originalu za 18 zhovtnya 2014 Procitovano 2 chervnya 2014 Swift Has Reached 1 0 9 veresnya 2014 Arhiv originalu za 11 lipnya 2016 Procitovano 10 veresnya 2014 Xcode 6 1 Release Notes 22 zhovtnya 2014 Arhiv originalu za 18 bereznya 2016 Procitovano 4 bereznya 2015 Xcode 6 3 Release Notes 8 kvitnya 2015 Arhiv originalu za 18 bereznya 2016 Procitovano 4 bereznya 2015 Arhivovana kopiya Arhiv originalu za 4 bereznya 2016 Procitovano 4 bereznya 2016 Mayo Benjamin 4 grudnya 2015 Write Swift code in a web browser with the IBM Swift Sandbox 9to5Mac amer Arhiv originalu za 20 serpnya 2021 Procitovano 20 serpnya 2021 Nate Swanner 7 kvitnya 2016 Google may be considering Swift for use on Android The Next Web https www facebook com thenextweb Arhiv originalu za 10 kvitnya 2016 Procitovano 11 kvitnya 2016 Kotlin is now Google s preferred language for Android app development TechCrunch amer Arhiv originalu za 24 chervnya 2020 Procitovano 20 serpnya 2021 Volodko V yacheslav Mova programuvannya Swift book swift org ua Ukrayinska Arhiv originalu za 4 grudnya 2020 Procitovano 20 kvitnya 2020 Inc Apple 22 veresnya 2020 Introducing Swift on Windows Swift org angl Arhiv originalu za 16 serpnya 2021 Procitovano 20 serpnya 2021 Automatic Reference Counting The Swift Programming Language Swift 5 5 docs swift org Arhiv originalu za 9 veresnya 2021 Procitovano 20 serpnya 2021 The Basics The Swift Programming Language Swift 5 5 docs swift org Arhiv originalu za 23 lipnya 2021 Procitovano 20 serpnya 2021 Structures and Classes The Swift Programming Language Swift 5 5 docs swift org Arhiv originalu za 11 grudnya 2020 Procitovano 20 serpnya 2021 Bakshi Neel 25 bereznya 2021 Classes vs Structs in Swift Basics and Memory Management Medium angl Procitovano 23 serpnya 2021 Div takozh RedaguvatiXcode Objective C D mova programuvannya KotlinPosilannya RedaguvatiOficijnij sajt Arhivovano 15 chervnya 2019 u Wayback Machine Swift na Apple com Arhivovano 3 chervnya 2014 u Wayback Machine Oficijnij proyekt na Github Arhivovano 12 chervnya 2019 u Wayback Machine nbsp Ce nezavershena stattya pro movi programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Otrimano z https uk wikipedia org w index php title Swift mova programuvannya amp oldid 39806128