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 |