Differenza tra var e const in Dart e Flutter
Due parole chiave spesso utilizzate sono var
e const
, ciascuna con caratteristiche specifiche.
Comprendere le differenze tra queste due dichiarazioni è essenziale per sfruttare al meglio il linguaggio.
Se vuoi imparare le basi di DART ho scritto un corso per principianti a questo link.
var
: Dichiarazione di variabili con inferenza di tipo (type inference)
La parola chiave var
in Dart permette di dichiarare una variabile il cui tipo viene inferito automaticamente dal compilatore in base al valore assegnato al momento dell'inizializzazione.
Una volta assegnato, il tipo della variabile non può essere modificato.
Esempio:
var nome = 'Luca'; // Il compilatore inferisce che 'nome' è di tipo String
// nome = 42; // Errore: non è possibile assegnare un int a una variabile di tipo String
Caratteristiche di var
:
- Inferenza di Tipo: Il compilatore determina automaticamente il tipo della variabile in base al valore iniziale.
- Tipo Immutabile: Dopo l'assegnazione iniziale, il tipo della variabile non può essere cambiato.
- Mutabilità del Valore: Il valore della variabile può essere modificato, purché il nuovo valore sia dello stesso tipo.
Quando Utilizzare var
:
- Quando il tipo della variabile è evidente dal contesto e si desidera una sintassi più concisa.
- Quando è necessario che la variabile possa cambiare valore nel tempo.
La parola chiave var
in Dart permette di dichiarare una variabile il cui tipo viene inferito automaticamente dal compilatore in base al valore assegnato al momento dell'inizializzazione. Una volta assegnato, il tipo della variabile non può essere modificato.
const
: Dichiarazione di costanti al momento della compilazione (Compile-time)
La parola chiave const
viene utilizzata per dichiarare variabili il cui valore è determinato al momento della compilazione e rimane costante per tutta la durata del programma.
Le variabili dichiarate con const
sono immutabili e devono essere inizializzate con valori noti al momento della compilazione.
Esempio:
const pi = 3.14159; // Valore determinato a tempo di compilazione
// pi = 3.14; // Errore: non è possibile assegnare un nuovo valore a una variabile const
Caratteristiche di const
:
- Immutabilità: Il valore non può essere modificato dopo l'inizializzazione.
- Valore a Tempo di Compilazione: Il valore deve essere noto e determinato durante la compilazione.
- Canonicalizzazione: Gli oggetti
const
identici possono condividere la stessa posizione in memoria, ottimizzando l'uso delle risorse.
Quando Utilizzare const
:
- Quando il valore è una costante nota a tempo di compilazione e non cambierà mai.
- Per definire valori costanti che possono essere utilizzati in più parti del programma, migliorando la leggibilità e la manutenibilità del codice.
La parola chiaveconst
viene utilizzata per dichiarare variabili il cui valore è determinato al momento della compilazione e rimane costante per tutta la durata del programma. Le variabili dichiarate conconst
sono immutabili e devono essere inizializzate con valori noti al momento della compilazione.
Differenze chiave tra var
e const
Var
- Tipo: Inferito dal valore iniziale; immutabile dopo l'assegnazione
- Mutabilità: Il valore può essere modificato, mantenendo lo stesso tipo
- Inizializzazione: Può essere inizializzata con valori determinati a runtime
- Uso della Memoria: Ogni variabile ha la propria allocazione in memoria
Const
- Tipo: Deve essere assegnato un valore costante a tempo di compilazione
- Mutabilità:Il valore è immutabile; non può essere modificato dopo l'inizializzazione
- Inizializzazione: Deve essere inizializzata con valori noti a tempo di compilazione
- Uso della Memoria: Gli oggetti
const
identici possono condividere la stessa posizione in memoria (canonicalizzazione)
Esercizi Pratici
Per consolidare la comprensione delle differenze tra var
e const
, si propongono i seguenti esercizi:
- Esercizio 1:
- Dichiarare una variabile
var
chiamataeta
e assegnarle il valore25
. - Provare a riassegnare a
eta
il valore'venticinque'
e osservare cosa accade.
- Dichiarare una variabile
- Esercizio 2:
- Dichiarare una variabile
const
chiamatanumeroDiGiorniSettimana
e assegnarle il valore7
. - Tentare di modificare il valore di
numeroDiGiorniSettimana
a8
e notare il risultato.
- Dichiarare una variabile
- Esercizio 3:
- Creare una lista di numeri interi utilizzando
const
e assegnarla a una variabile chiamatanumeri
. - Provare ad aggiungere un nuovo numero alla lista
numeri
e osservare il comportamento del programma.
- Creare una lista di numeri interi utilizzando
Conclusioni
Comprendere le differenze tra var
e const
in Dart e Flutter è fondamentale per scrivere codice chiaro, efficiente e manutenibile.
Mentre var
offre flessibilità permettendo la modifica del valore della variabile, const
garantisce l'immutabilità e l'assegnazione di valori noti al momento della compilazione.
L'uso appropriato di queste parole chiave contribuisce a prevenire errori e a migliorare la qualità del codice.