Sobes.tech
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