NEW: Join my free 100 Days of SwiftUI challenge today! >>

Variabile și constante

Orice program util are nevoie să stocheze date la un moment dat și, în Swift, există două moduri de a o face: variabile și constante. O variabilă este o arhivă de date căreia i se poate modifica valoarea oricând, iar o constanta este arhivă căreia îi poți seta valoarea o singură dată, iar apoi aceasta nu mai poate fi schimbată. Deci, variabilele au valori care variază, iar constantele au valori constante – simplu, nu?

Existența acestor două opțiuni poate părea să nu aibă sens, la urma urmei poți crea o variabilă căreia să nu îi schimbi valoarea niciodată – de ce trebuie declarată ca și constantă? Ei bine, se pare că mulți programatori sunt – șoc și groază! – nu chiar perfecți atunci când programează, și fac greșeli.

Unul dintre avantajele de a face distincție între constante și variabile este că Xcode ne va spune dacă am facut o greșală. Dacă spunem „fă asta o constantă, pentru că știu că nu se va schimba” iar apoi, 10 rânduri mai târziu, încercăm să o schimbăm, Xcode va refuza să ruleze aplicația.

De asemenea constantele sunt importante pentru că îi permit Xcode-ului să ia decizii despre modul în care îți construiește aplicația. Dacă știe că o valoare nu se va schimba niciodată, poate aplica optimizări care fac codul să ruleze mai rapid.

În Swift, creezi o variabilă folosind cuvântul cheie var, astfel:

var name = "Tim McGraw"

Hai să punem asta într-un playground ca să primim niște feedback. Șterge tot ce găsești acolo înafară de randul import UIKit (asta este instrucțiunea care introduce pachetul de bază iOS și ne va fi de folos mai târziu), și adaugă variabila de mai sus. Vei obține ceva similar cu poza de mai jos.

În Xcode playgrounds, codul se scrie în partea stângă iar rezultatele apar în partea dreaptă o secundă mai târziu.

Datorită faptului că aceasta este o variabiă, poate fi schimbată oricând, dar nu trebuie folosit cuvântul cheie var de fiecare dată – acesta este folosit doar când declarăm o nouă variabilă. Încearcă să scrii urmatoarele:

var name = "Tim McGraw"
name = "Romeo"

Primul rând creează variabila name și îi dă o valoare inițială, apoi al doilea rând actualizează variabila name astfel încât noua sa valoare este acum "Romeo". Vei vedea ambele valori printate in zona de rezultate a playground-ului.

Dar dacă am fi folosit o constantă în locul unei variabile? Ei bine, constantele folosesc cuvântul cheie let in locul lui var, deci putem schimba primul rând al codului cu let name în locul lui var name, astfel:

import UIKit
let name = "Tim McGraw"
name = "Romeo"

Dar apare o problemă: Xcode ne arată un simbol de alertă roșu lângă rândul numărul trei și subliniază name cu o linie șerpuită. Dacă facem click pe simbolul roșu de alertă Xcode ne va spune care este problema: "Cannot assign to 'let' value 'name'" – care este modul lui Xcode de a supune „încerci să modifici o constantă dar nu ai voie să faci asta.”.

Dacă încerci să modifici o constantă în Swift, Xcode va refuza să ruleze aplicația

Deci, constantele reprezintă un mod perfect de a face o promisiune lui Swift și chiar și nouă că o valoare nu se va schimba, pentru că, dacă încercăm să o facem, Xcode va refuza să ruleze. Dezvoltatorii Swift au o puternică preferință să folosească constante oriunde este posibil pentru că ele fac codul mai ușor de înțeles. Mai mult, în ultima versiune a lui Swift, Xcode ne va atenționa când creăm o variabilă pe care nu o modificăm nicodată!

Notă importantă: numele variabilelor și al constantelor trebuie sa fie unice în codul nostru. Vom primi o eroare dacă încercăm să folosim același nume de două ori, astfel:

var name = "Tim McGraw"
var name = "Romeo"

Dacă playground-ul găsește o eroare în cod, fie va arăta o atenționare cu un chenar roșu, fie va refuza să ruleze. Vom ști că a avut loc a doua variantă deoarece textul din panoul de rezultate a devenit gri în loc de culoarea sa obișnuită de negru.

SPONSORED Instabug helps you identify and resolve severe crashes quickly. You can retrace in-app events and know exactly which line of code caused the crash along with environment details, network logs, repro steps, and the session profiler. Ask more questions or keep users up-to-date with in-app replies straight from your dashboard. Instabug takes data privacy seriously, so no one sees your data but you! See more detailed features comparison and try Instabug's crash reporting SDK for free.

BUY OUR BOOKS
Buy Pro Swift Buy Swift Design Patterns Buy Testing Swift Buy Hacking with iOS Buy Swift Coding Challenges Buy Swift on Sundays Volume One Buy Server-Side Swift (Vapor Edition) Buy Advanced iOS Volume One Buy Advanced iOS Volume Two Buy Advanced iOS Volume Three Buy Hacking with watchOS Buy Hacking with tvOS Buy Hacking with macOS Buy Dive Into SpriteKit Buy Swift in Sixty Seconds Buy Objective-C for Swift Developers Buy Server-Side Swift (Kitura Edition) Buy Beyond Code

Was this page useful? Let us know!