Junior
Ce sunt tipurile de date referință?
sobes.tech AI
Răspuns de la AI
Tipurile de date de referință nu stochează valoarea în sine, ci o referință (adresa în memorie) către locul unde este stocată această valoare. La atribuirea sau transmiterea acestor date, se copiază doar referința, nu obiectul complet. Modificările făcute printr-o referință vor fi vizibile atunci când se accesează prin alte referințe care indică același obiect.
Exemple de tipuri de date de referință în diferite limbaje:
- Java: Clase (
String,Object, clase personalizate), interfețe, array-uri. - C#: Clase (
string,object, clase personalizate), interfețe, delegați, array-uri. - Python: Toate tipurile de date (liste, dicționare, tuple, seturi, clase, funcții).
# Exemplu în Python
list1 = [1, 2, 3]
list2 = list1 # list2 face referire la aceeași listă ca și list1
list2.append(4)
print(list1) # Ieșire: [1, 2, 3, 4]
print(list2) # Ieșire: [1, 2, 3, 4]
Diferența față de tipurile de date de valoare constă în faptul că tipurile de valoare stochează valoarea în sine, și la atribuiri/pasări, se copiază întreaga valoare.
Exemplu de comparație:
| Caracteristică | Tipuri de valoare | Tipuri de referință |
|---|---|---|
| Stocare | Valoarea în sine | Referință la valoare |
| Atribuire/pasare | Copie a valorii | Copie a referinței |
| Modificare | Nu afectează originalul | Schimbă originalul |
| Exemplu (C#) | int, struct, enum |
class, interface, array |