Swift de la zero variabile și constante

În primul articol al lui Swift From Scratch, ai învățat despre locurile de joacă Xcode și ai scris primele linii ale lui Swift. În acest articol, vom începe să învățăm fundamentele limbajului de programare Swift explorând variabilele și tastând. De asemenea, vom analiza constantele și de ce sunteți încurajați să le folosiți cât mai mult posibil.

În următoarele tranșe din această serie, vom utiliza locurile de joacă Xcode pentru a afla fundamentele limbajului de programare Swift. După cum am văzut în articolul precedent, locurile de joacă sunt ideale pentru predarea și învățarea Swift.

Să începem prin crearea unui nou loc de joacă pentru acest tutorial. Vă încurajez să urmați! Folosirea unei limbi este o modalitate excelentă de a învăța sintaxa și de a înțelege conceptele sale.

Lansați Xcode 8 și creați un nou loc de joacă selectând Nou> Loc de joaca ...  din Xcode Fişier meniul. Introduceți un nume pentru locul de joacă, setat Platformă la iOS, și faceți clic pe Următor →. Spuneți Xcode în cazul în care doriți să salvați loc de joacă și lovit Crea.

Goliți conținutul locului de joacă pentru a putea începe cu o artă curată. Am folosit deja variabilele din tutorialul precedent, dar să examinăm mai atent detalii detaliate pentru a înțelege mai bine ce face Swift în spatele scenei.

1. Variabile

Declararea variabilelor

În Swift, folosim var cuvânt cheie pentru a declara o variabilă. Deși acest lucru este similar cu modul în care variabilele sunt declarate în alte limbi de programare, vă sfătuiesc să nu vă gândiți la alte limbi de programare atunci când utilizați var cuvânt cheie în Swift. Există câteva diferențe importante.

 var cuvântul cheie este singurul mod de a declara o variabilă în Swift. Cea mai comună și mai concisă utilizare a var cuvântul cheie este de a declara o variabilă și a atribui o valoare acesteia.

var strada = "Avenue 5th"

Amintiți-vă că nu încheiem această linie de cod cu un punct și virgulă. În timp ce un punct și virgulă sunt opționale în Swift, cea mai bună practică nu este să utilizați un punct și virgulă dacă nu este necesar.

De asemenea, s-ar putea să fi observat că nu am specificat un tip la declararea variabilei stradă. Aceasta ne aduce la una din trăsăturile cheie ale lui Swift, inferență de tip.

Inferență de tip

Declarația de mai sus declară o variabilă stradă și atribuie valoarea Avenue 5th la el. Dacă sunteți nou la Swift sau sunteți obișnuit cu JavaScript sau PHP, atunci s-ar putea să vă gândiți că Swift este un limbaj tipizat sau slab, dar nimic nu poate fi mai departe de adevăr. Permiteți-mi să reiterez faptul că Swift este un limbaj puternic tipărit. Siguranța tipului este una dintre pietrele de temelie ale limbii.

Începem doar să începem, iar Swift ne arată deja puțină magie. Deși declarația de mai sus nu specifică în mod explicit un tip, variabila stradă este de tip Şir. Aceasta este inferența de tip Swift în acțiune. Valoarea pe care o atribuim stradă este un șir. Swift este suficient de inteligent pentru a vedea acest lucru și implicit stabilește tipul de stradă la Şir.

Următoarea afirmație ne dă același rezultat. Diferența este că am setat explicit tipul de variabilă. Această afirmație spune literalmente acest lucru stradă este de tip Şir.

var strada: String = "Avenue 5th"

Swift vă cere să setați în mod explicit sau implicit tipul de variabile și constante. Dacă nu, Swift se plânge că aruncă o eroare. Adăugați următoarea linie la locul de joacă pentru a vedea ce vreau să spun.

numărul var

Această afirmație ar fi perfect valabilă în JavaScript sau PHP. Cu toate acestea, în Swift este nevalid. Motivul este simplu. Chiar dacă declarăm o variabilă folosind var , nu specificăm tipul variabilei. Swift nu poate deduce tipul deoarece nu atribuim o valoare variabilei. Dacă faceți clic pe eroare, Xcode vă spune ce este în neregulă cu această afirmație.

Putem rezolva cu ușurință această problemă făcând una din cele două lucruri. Putem atribui o valoare variabilei așa cum am făcut mai devreme sau putem specifica în mod explicit un tip pentru variabila număr. Când setăm explicit tipul de număr, eroarea dispare. Linia de mai jos a codului citește asta număr este de tip Şir.

numărul var: String

Schimbarea tipului

Așa cum puteți vedea mai jos, atribuirea unor valori noi stradă și număr este simplu și nu are surprize.

var strada: String = "5th Avenue" număr var: String stradă = "Main Street" number = "10"

Nu ar fi mai ușor să atribuiți numărul 10 la număr variabil? Nu este nevoie să stocați numărul de stradă ca șir. Să vedem ce se întâmplă dacă o vom face.

var strada: String = "5th Avenue" număr var: stradă String = "Main Street" number = 10

Dacă îi atribuim un număr întreg număr, Xcode ne aruncă o altă eroare. Mesajul de eroare este clar. Nu putem atribui o valoare de tip Int la o variabilă de tip Şir. Aceasta nu este o problemă în limbile cu litere slabe, dar este în Swift.

Swift este un limbaj puternic tipizat în care fiecare variabilă are un tip specific, iar acest tip nu poate fi modificat. Citiți această propoziție din nou pentru ao lăsa să se scufunde, deoarece acesta este un concept important în Swift.

Pentru a scăpa de eroare, trebuie să declarăm număr variabil ca un Int. Consultați exemplul actualizat de mai jos.

var strada: String = "Avenue 5th" numărul var: Int street = "Main Street" number = 10

rezumat

Este important să țineți cont de următoarele. Puteți declara o variabilă cu var și nu este necesar să declarați explicit tipul de variabilă. Totuși, rețineți că fiecare variabilă și constantă are un tip în Swift. Dacă Swift nu poate deduce tipul, atunci se plânge. Fiecare variabil are un tip, iar tipul respectiv nu poate fi modificat.

2. Constante

Constantele sunt similare cu variabilele din punct de vedere al tastării. Singura diferență este că valoarea unei constante nu poate fi schimbată odată ce are o valoare. Valoarea unei constante este, bine ... constantă.

Declarând constante

Pentru a declara o constantă, utilizați lăsa cuvinte cheie. Aruncati o privire la exemplul de mai jos, in care declaram stradă ca o constantă în loc de o variabilă.

la stradă: String = "5th Avenue" număr var: Int street = "Main Street" number = 10

Dacă actualizăm numai prima linie, înlocuind var cu lăsa, Xcode aruncă o eroare din motive evidente. În Swift nu este permisă modificarea valorii unei constante. Eliminați sau comentați linia în care încercăm să atribuiți o valoare nouă stradă pentru a scăpa de eroare.

lasa stradă: String = "5th Avenue" număr var: Int // street = "Main Street" number = 10

Utilizarea constantelor

Sper că sunteți de acord că declararea constantelor este foarte ușoară în Swift. Nu este nevoie de cuvinte cheie exotice sau de o sintaxă complexă. Declararea constantelor este la fel de ușoară ca și declararea variabilelor, și nu este o coincidență.

Utilizarea constantelor este încurajată în Swift. Dacă o valoare nu se va schimba sau nu vă așteptați să se schimbe, atunci ar trebui să fie o constantă. Acest lucru are o serie de beneficii. Unul dintre avantajele este performanța, dar un beneficiu mai important este siguranța. Folosind constante ori de câte ori este posibil, adăugați constrângeri la codul dvs., ceea ce duce la un cod mai sigur.

3. Tipuri de date

Majoritatea limbajelor de programare au o gamă largă de tipuri de stocare a șirurilor, a întregilor, a flotorilor etc. Lista tipurilor disponibile în Swift este concisă. Consultați următoarea listă:

  • Int
  • Pluti
  • Dubla
  • Şir
  • Caracter
  • bool

Este important să înțelegeți că tipurile de mai sus nu sunt tipuri de bază sau primitive. Acestea sunt numite tipuri, care sunt implementate de Swift folosind structuri. În continuare vom explora structurile în detaliu mai târziu în această serie, dar este bine de știut că tipurile pe care le-am întâlnit până acum nu sunt aceleași cu tipurile primitive pe care le-ați folosit în, de exemplu, Obiectiv-C.

Există mai multe tipuri de date în Swift, cum ar fi tuplurile, matricele și dicționarele. Noi explorăm mai târziu în această serie.

4. Conversia de tip

Există încă un subiect pe care trebuie să-l discutăm, tip de conversie. Uitați-vă la următorul fragment de obiectiv-C. Acest bloc de coduri afișează valoarea 314.000000 la consola.

int a = 100; flotor b = 3,14; NSLog (@ "% f", (a * b));

Modul de execuție a obiectivului-C implicit convertește A la o valoare în virgulă mobilă și o multiplică cu b. Să rescriem fragmentul de cod de mai sus folosind Swift.

var a = 100 var b = 3,14 imprimare (a * b)

Ignorați Print (_: separator: terminator :) pentru moment. Vreau mai întâi să mă concentrez asupra înmulțirii lui A și b. Swift implică tipul de A, un Int, și b, A Dubla. Cu toate acestea, atunci când compilatorul încearcă să se înmulțească A și b, constată că acestea nu sunt de același tip. Acest lucru nu poate părea o problemă pentru dvs., dar este pentru Swift. Swift nu știe ce tip ar trebui să fie rezultatul acestei multiplicări. Ar trebui să fie un număr întreg sau un dublu?

Pentru a remedia această problemă, trebuie să ne asigurăm că ambii operanzi ai înmulțirii sunt de același tip. Swift nu convertește implicit operanzii pentru noi, dar este ușor de făcut. În exemplul actualizat de mai jos, creăm un Dubla utilizând valoarea stocată în A. Aceasta rezolvă eroarea.

var a = 100 var b = 3,14 imprimare (dublu (a) * b)

Rețineți că tipul de A nu sa schimbat. Chiar dacă fragmentul de cod de mai sus poate arăta ca o distribuție de tip, nu este același lucru. Noi utilizare valoarea stocată în A pentru a crea un Dubla, și rezultatul este folosit la multiplicarea cu b. Rezultatul multiplicării este de tip Dubla.

Ceea ce trebuie să vă amintiți este că Swift este diferit de C și Obiectiv-C. Nu convertește implicit valorile variabilelor și constantelor. Acesta este un alt concept important de înțeles.

5. Print

În fragmentul de cod anterior, ați invocat prima dvs. funcție, Print (_: separator: terminator :). Această funcție este similară obiectivului C NSLog; imprimă ceva și adaugă o nouă linie. Pentru a imprima ceva în consola sau panoul de rezultate din dreapta, invoca Print (_: separator: terminator :) și să îi transmitem un parametru. Aceasta poate fi o variabilă, o constantă, o expresie sau o literală. Consultați următoarele exemple.

var șir = "acesta este un șir" lăsa constant = 3.14 print (string) print (constant) print (10 * 50) print ("literal șir"

De asemenea, este posibil să se utilizeze interpolarea șirurilor pentru a combina variabilele, constantele, expresiile și literalii. Interpolarea cu șir este foarte simplă în Swift. Înfășurați variabilele, constantele, expresiile sau literalii în \ (). Floare la ureche.

lasa strada = "5th Avenue" lasa numar = 10 print ("Locuieste la \ (street) \ (number).")

Concluzie

Este esențial să înțelegeți cum Swift se ocupă de variabile și constante. Deși poate dura ceva timp să vă obișnuiți cu conceptul de constante, odată ce ați îmbrățișat această bună practică, codul dvs. va fi mult mai sigur și mai ușor de înțeles. În următorul tutorial al acestei serii, vom continua să explorăm Swift privindu-ne la colecții.

Aflați Swift

Am construit un ghid complet pentru a vă ajuta să învățați Swift, indiferent dacă începeți doar cu elementele de bază sau doriți să explorați subiecte mai avansate.

Dacă doriți să aflați cum să utilizați aplicația Swift 3 pentru a codifica aplicațiile din lumea reală, consultați cursul nostru Creați aplicații iOS cu Swift 3. Indiferent dacă sunteți nou în dezvoltarea de aplicații iOS sau căutați să treceți de la obiectivul C, curs va începe cu Swift pentru dezvoltarea de aplicații. 

 


Cod