Junior
Ce sunt tipurile de referință?
sobes.tech AI
Răspuns de la AI
Tipurile de referință (Reference Types) sunt tipuri de date care, la atribuirea sau transmiterea către o funcție, transmit o referință la instanța obiectului în memorie, nu o copie a acesteia.
Caracteristici cheie:
- Mai multe variabile pot face referire la aceeași instanță a unui obiect.
- Modificarea stării obiectului printr-o referință se reflectă în toate celelalte referințe către același obiect.
- Lucrul cu tipurile de referință se face prin pointeri către obiecte în heap.
Exemple de tipuri de referință în Swift:
- Clase (
class) - Funcții (
func) - Closures (
{...})
Comparativ cu tipurile de valoare (Value Types):
| Caracteristică | Tip de referință (Reference Type) | Tip de valoare (Value Type) |
|---|---|---|
| Ce se transmite | Referință (adresa în memorie) | Copie a valorii |
| Locul de stocare | Heap | Stack |
| Copiere | Referința se copiază | Valoarea se copiază |
| Modificare | Afectează obiectul original | Afectează copia |
class MyClass {
var value: Int
init(value: Int) {
self.value = value
}
}
var object1 = MyClass(value: 10) // Creăm o instanță de clasă
var object2 = object1 // object2 face referire acum la aceeași instanță ca object1
print(object1.value) // Ieșire: 10
print(object2.value) // Ieșire: 10
object2.value = 20 // Modificăm valoarea prin intermediul object2
print(object1.value) // Ieșire: 20 (modificarea prin object2 a afectat object1)
print(object2.value) // Ieșire: 20
Gestionarea memoriei pentru tipurile de referință în Swift se face cu ajutorul Automatic Reference Counting (ARC).