Quali sono i modi di usare la parola chiave const in Dart?
sobes.tech AI
Risposta dell'AI
La parola chiave const in Dart viene utilizzata per creare valori costanti determinati durante la compilazione e che non possono essere modificati durante l'esecuzione del programma.
Modi di utilizzo:
-
Come modificatore di variabile: Viene usato per dichiarare una variabile il cui valore è costante durante la compilazione.
const int speedOfLight = 299792458; // Valore costante -
Come modificatore di costruttore: Un costruttore dichiarato come
constcrea istanze immutabili della classe, purché tutti i suoi campi siano finali (final) o costanti (const).class Point { final double x; final double y; const Point(this.x, this.y); // Costruttore costante } const origin = Point(0.0, 0.0); // Creazione di un'istanza costante -
Per creare collezioni costanti: Viene usato per creare liste, insiemi e mappe il cui contenuto è costante durante la compilazione.
const List<int> primeNumbers = [2, 3, 5, 7, 11]; // Lista costante const Set<String> constants = {'pi', 'e', 'phi'}; // Insieme costante const Map<String, double> mathConstants = { 'pi': 3.14159, 'e': 2.71828 }; // Mappa costante -
In contesti in cui si attende un valore costante: Ad esempio, durante la creazione di widget in Flutter, dove i widget costanti possono essere ottimizzati.
// Nel contesto di Flutter const Text('Hello, World!'); // Widget costante
Differenze con final:
constdefinisce un valore noto durante la compilazione.finaldefinisce un valore che viene assegnato una sola volta durante l'esecuzione e non può essere modificato successivamente.
| Caratteristica | const |
final |
|---|---|---|
| Tempo di inizializzazione | Durante la compilazione | Durante l'esecuzione (una volta) |
| Immutabilità del valore | Inalterabile | Assegnato una volta, poi inalterabile |
| Applicazione alle istanze | Crea un'istanza costante (se il costruttore è const) |
Crea un riferimento inalterabile a un oggetto |
| Applicazione alle collezioni | Crea una collezione inalterabile con contenuto inalterabile | Crea un riferimento inalterabile a una collezione (il contenuto può essere mutabile) |