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.

LEARN SWIFTUI FOR FREE I have a massive, free SwiftUI video collection on YouTube teaching you how to build complete apps with SwiftUI – check it out!

MASTER SWIFT NOW
Buy Testing Swift Buy Practical iOS 12 Buy Pro Swift Buy Swift Design Patterns Buy Swift Coding Challenges Buy Server-Side Swift (Vapor Edition) Buy Server-Side Swift (Kitura Edition) Buy Hacking with macOS Buy Advanced iOS Volume One Buy Advanced iOS Volume Two Buy Hacking with watchOS Buy Hacking with tvOS Buy Hacking with Swift Buy Dive Into SpriteKit Buy Swift in Sixty Seconds Buy Objective-C for Swift Developers Buy Beyond Code

Was this page useful? Let us know!