Sobes.tech
Junior

Cosa sono i tipi di dati di riferimento?

sobes.tech AI

Risposta dell'AI

I tipi di dati di riferimento non memorizzano il valore stesso, ma un riferimento (indirizzo in memoria) al luogo in cui tale valore è memorizzato. Quando si assegna o si passa tali dati, viene coperto solo il riferimento, non l'intero oggetto. Le modifiche apportate tramite un riferimento saranno visibili quando si accede tramite altri riferimenti che puntano allo stesso oggetto.

Esempi di tipi di dati di riferimento in diversi linguaggi:

  • Java: Classi (String, Object, class personalizzate), interfacce, array.
  • C#: Classi (string, object, class personalizzate), interfacce, delegati, array.
  • Python: Tutti i tipi di dati (liste, dizionari, tuple, set, classi, funzioni).
# Esempio in Python
list1 = [1, 2, 3]
list2 = list1  # list2 si riferisce alla stessa lista di list1

list2.append(4)

print(list1)  # Output: [1, 2, 3, 4]
print(list2)  # Output: [1, 2, 3, 4]

La differenza rispetto ai tipi di dati di valore è che i tipi di valore memorizzano il valore stesso, e durante l'assegnazione o il passaggio, tutto il valore viene copiato.

Esempio di confronto:

Caratteristica Tipi di valore Tipi di riferimento
Memorizzazione Il valore stesso Riferimento al valore
Assegnazione/passo Copia del valore Copia del riferimento
Modifica Non influenza l'originale Cambia l'originale
Esempio (C#) int, struct, enum class, interface, array