Swift (limbaj de programare)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Rapid
limbaj de programare
Autor Compania Apple.
Data de origine 9 septembrie 2014
Ultima versiune 5.4.2
(28 iunie 2021)
Utilizare Scop general
Paradigme Multiparadigm
Tastare puternic
Specificații lingvistice Manual rapid
Extensii comune rapid
Influențată de C , Obiectivul C , D [1]
Implementare referință
Implementare Compilator LLVM
Sistem de operare macOS , iOS , watchOS , tvOS , Linux
Licență Apache 2.0
Site-ul web swift.org/

Swift (din engleza „înghiți” și „rapid, brusc”) este un limbaj de programare orientat pe obiecte pentru sistemele macOS , iOS , watchOS , tvOS și Linux , prezentat de Apple în timpul WWDC 2014. [2] Swift este conceput pentru a coexista cu limbajul Objective-C , tipic dezvoltărilor pentru sistemele de operare Apple , simplificând scrierea codului. Swift a fost conceput pentru a fi mai rezistent la erori de cod. Folosește compilatorul LLVM inclus cu timpul de rulare Xcode și Objective C, permițând utilizarea obiectivelor C, Objective C ++ și codului Swift într-un singur program.

Swift, de la prima versiune, este de până la 8,4 ori mai rapid decât Python și de până la 2,6 ori mai rapid decât obiectivul C în unele tipuri de algoritmi. [3]

La 25 martie 2019, versiunea 5.0 a fost lansată sub licența open source Apache 2.0 pentru sistemele Apple și Linux. [4]

Istorie

Dezvoltarea rapidă a fost începută în 2010 de Chris Lattner , care a fost ulterior asistat de mulți alți programatori. Swift a luat idei de la „Obiectiv-C, Rust, Haskell, Ruby, Python, C #, CLU și multe altele pentru a le enumera pe toate”. [5] La 2 iunie 2014, aplicația WWDC a devenit prima aplicație lansată public scrisă în Swift. O versiune beta a limbii a fost distribuită dezvoltatorilor Apple înregistrați până în acel moment, dar Apple nu promite că versiunea finală a Swift va fi compatibilă, la nivel de sursă, cu versiunea distribuită. Apple intenționează să producă convertoare de cod sursă, dacă este necesar, la distribuția finală. Un manual de 500 de pagini a fost distribuit și la WWDC: „Limbajul de programare Swift”, [6] disponibil gratuit pe iBookstore- ul Apple.

La prezentarea din 8 iunie 2015, Apple a anunțat distribuirea Swift 2.0 cu îmbunătățiri semnificative în structura limbajului și adăugarea de funcții, angajându-se să facă proiectul open source în viitorul apropiat. Pe 3 decembrie a aceluiași an este lansat site-ul swift.org și codul sursă de limbă este publicat sub licența Apache 2.0 pe un depozit GitHub . [7] Apple rămâne principalul dezvoltator și pune la dispoziție și o versiune a compilatorului pentru Linux (Creată special pentru Ubuntu). [8]

Pe 13 septembrie 2016, în timpul WWDC 2016, Apple a prezentat a treia versiune a limbajului său de programare împreună cu o aplicație pentru iPad, Swift Playgrounds, care permite, printr-o grafică simplă și intuitivă, să învețe să programeze cu Swift, orientată în special către cei mai tineri.

Versiunea istorică

Versiune Data de lansare Anunțuri
1.0 9 septembrie 2014
1.1 22 octombrie 2014
1.2 8 aprilie 2015
2.0 21 septembrie 2015
2.1 20 septembrie 2015
2.2 21 martie 2016
2.3 12 iunie 2016
3.0 13 septembrie 2016 [9]
3.1 27 martie 2017
4.0 19 septembrie 2017 [10]
4.1 29 martie 2018
4.2 17 septembrie 2018 [11]
5.0 25 martie 2019 [12]
5.1 10 septembrie 2019 [13]
5.2 24 martie 2020 [14]
5.3 16 septembrie 2020 [15]
5.4 26 aprilie 2021 [16]

Sintaxă

Salut Lume!

Salut Lume! este programul clasic care generează „ Bună ziua, lume! ”.

 import UIKit

print ( „Bună ziua, lume!” )

Analize

 import UIKit

Funcția „ importimportă anumite metode sau clase în program care îi permit să implementeze anumite comenzi. „ UIKit ” este un cadru dezvoltat de Apple care oferă funcțiile de bază pentru gestionarea interfeței GUI și a intrărilor utilizatorului. În acest caz, codul se compilează și fără a importa UIKit (a fost importat doar ca exemplu), deoarece singura funcție utilizată a fost funcția „ print ” care face parte din nucleul limbii.

 print ( „Bună ziua, lume!” )

Funcția „ print ” vă permite să afișați pe ecran ceea ce este scris între ghilimele din parantezele rotunde.

În Swift nu este necesar să introduceți un punct și virgulă (;) la sfârșitul fiecărei instrucțiuni (spre deosebire de C sau alte limbi).

Exemple practice

Majuscule și minuscule

În acest exemplu, convertim un cuvânt în majuscule și celălalt în minuscule:

 // Declarați variabilele de utilizat
   var name = "Mario" , prenume = "Rossi"

// Convertiți șirul în majuscule
   nume = nume . cu majuscule ()

// Convertiți șirul în minuscule
   prenume = prenume . cu litere mici ()

// Imprimați rezultatul
   tipar ( nume , prenume )

Prima majusculă a fiecărui cuvânt

În acest exemplu convertim doar primul caracter al fiecărui cuvânt în majuscule și numărăm caracterele care alcătuiesc șirul în sine:

 import UIKit

// Declarați variabilele de utilizat
   var string = "sir de testare"

// Imprimați rezultatul
   print ( "Expresia \" \ ( șir . cu majuscule ) \ " constă din caractere \ ( șir . număr ) , inclusiv spații" )

Înlocuirea cuvântului

În acest exemplu, înlocuim un cuvânt specific cu altul:

 import UIKit

// Declarați variabilele de utilizat
   var string = "Acesta este rezultatul anterior"

// Înlocuiți cuvântul „precedent” cu „următor” (var.replacingOccurrences)
   șir = șir . ReplacingOccurrences ( din : „precedent” , cu : „următor” )

// Imprimați rezultatul
   print ( șir )

Condiție pe cuvânt palindrom

Un cuvânt palindrom este un cuvânt care, indiferent dacă îl citiți din dreapta sau din stânga, este întotdeauna același (de exemplu, „anna” este un cuvânt palindrom). Mai târziu se va arăta că, având un cuvânt, acest lucru va scrie pe ecran dacă este palindrom sau nu.

 // Declarați variabilele de utilizat
   var cuvânt = "anna"
   var cuvânt Inversat : Șir

// Inversați șirul
   wordInverted = Șir ( word . inversat ())

// Comparați variabilele și imprimați rezultatul
   if ( cuvânt == cuvânt inversat ) {
       print ( "Cuvântul \ ( cuvânt ) este palindrom" )
   } altceva {
       print ( „Cuvântul \ ( cuvântul ) NU este palindrom” )
   }

Matrice și cicluri

În cele din urmă, în exemplul de mai jos, vedem declarația unui tablou și o imprimăm cu bucla for-in

 // Declarați matricea
   var alphabetArray = [ "Alpha" , "Beta" , "Gamma" , "Delta" ]

// Imprimați tabloul declarat
   pentru ( index , element ) în ( alphabetArray . enumerated ()) {
        print ( index , ":" , element )
   }

Declarați constante și variabile

 // Metoda 1
   var nume = "Mario" , prenume = "Rossi" , sex = "M" , vârstă = 46

// Metoda 2
   var ( nume , prenume , sex , vârstă ) = ( "Mario" , "Rossi" , "M" , 46 )

// Metoda 3
   var name = "Mario"
   var prenume = "Rossi"
   var gender = "M"
   var varsta = 46
  • Tipurile de constante și variabile (String, Int, Double, ...) nu sunt obligatorii de declarat;
  • Parantezele rotunde () pentru a include condițiile de comparație (if-else, switch ...) și buclele (pentru in, do-while ...) sunt opționale;
  • Punctul și virgula; la sfârșitul educației, este, de asemenea, opțional;
 // Cu declarație de tipologie între paranteze rotunde și punct și virgulă la sfârșit
     let a : ( String ) = "A" ;

  // Fără paranteze rotunde și punct și virgulă la final
      b : String = "B" 

  // Fără măcar declarația de tip (Șir)
      c = "C"
  • Numele constantelor și variabilelor poate conține aproape orice caracter, inclusiv caractere Unicode:
 // Declarați constantele de utilizat
   fie π = 3,14159
   你好= "你好 世界"
    🍓 = "Căpșuni" ; 🥝 = "Kiwi" ; 🍎 = „Apple”

SwiftUI

SwiftUI este un cadru de dezvoltare realizat de Apple Inc. și scris în întregime de Swift.

Prezentat în WWDC 2019, SwiftUI a fost conceput pentru a construi interfețe utilizator printr-un singur set de instrumente și API-uri care implică întregul ecosistem Apple (anterior se foloseau cadre separate: AppKit pentru macOS , UIKit pentru iOS și WatchKit pentru watchOS ).

Notă

  1. ^ Building assert () în Swift, Partea 2: __FILE__ și __LINE__ - Swift Blog - , la developer.apple.com , Apple Developer. Adus la 26 septembrie 2014 .
    "Swift împrumută o caracteristică inteligentă din limbajul D : acești identificatori se extind la locația apelantului atunci când sunt evaluați într-o listă de argumente implicită." .
  2. ^ (EN) Apple WWDC 2014: actualizări iPhone, iPad, sistem „smart home” și multe altele pe cbsnews.com, CBS News, 2 iunie 2014. Accesat 3 iunie 2014.
  3. ^ 10.000 de numere întregi găsite într-un grafic folosind un algoritm de căutare în profunzime. Testarea efectuată de Apple în octombrie 2014 utilizând sisteme de producție MacBook Air de 13 inch bazate pe Intel Core i5 de 1,4 GHz, 4 GB RAM și OS X v10.10 de pre-lansare. Performanța va varia în funcție de configurația sistemului, conexiunea la rețea și alți factori. , pe apple.com . Accesat pe 29 mai 2015 .
  4. ^ Limbajul de programare Swift. Contribuiți la dezvoltarea apple / rapidă prin crearea unui cont pe GitHub , Apple, 1 aprilie 2019. Accesat 1 aprilie 2019 .
  5. ^ (RO) Pagina de pornire a lui Chris Lattner pe nondot.org. Adus pe 7 iunie 2014 .
  6. ^ (RO) Limbajul de programare Swift , Apple , 2 iunie 2014. Accesat pe 7 iunie 2014.
  7. ^ (EN) Jacob Kastrenakes, noul limbaj de programare Apple Swift este acum open source , pe theverge.com, The Verge, 3 decembrie 2015. Adus pe 8 decembrie 2015.
  8. ^ Apple face Swift open source, dar nu putea face altfel , pe dday.it. Adus pe 12 iunie 2015 .
  9. ^ SWIFT 3.0: Noua versiune , pe xcoding.it . Adus 06-01-2019 .
  10. ^ SWIFT 4.0: Comunicat de presă , pe xcoding.it . Adus 06-01-2019 .
  11. ^ SWIFT 4.2: Comunicat de presă , pe xcoding.it . Adus 06-01-2019 .
  12. ^ SWIFT 5.0: Comunicat de presă , pe xcoding.it . Adus 11/11/2019 .
  13. ^ (RO) Swift.org - lansat Swift 5.1! , pe swift.org . Adus 20-09-2019 .
  14. ^ (RO) Swift.org - lansat Swift 5.2! , pe swift.org . Adus 26-03-2020 .
  15. ^ (RO) Swift.org - lansat Swift 5.3! , pe swift.org . Adus 16-09-2020 .
  16. ^ (RO) Swift.org - lansat Swift 5.4! , pe swift.org . Adus 26/04/2021 .

Alte proiecte

linkuri externe

Controlul autorității LCCN (EN) sh2015001571 · GND (DE) 1066617112 · BNF (FR) cb17039945c (data)