Care sunt modalitățile de utilizare a cuvântului cheie const în Dart?
sobes.tech AI
Răspuns de la AI
Cuvântul cheie const în Dart este utilizat pentru a crea valori constante care sunt determinate în timpul compilării și nu pot fi modificate în timpul execuției programului.
Moduri de utilizare:
-
Ca modificator de variabilă: Este folosit pentru a declara o variabilă a cărei valoare este constantă în timpul compilării.
const int speedOfLight = 299792458; // Valoare constantă -
Ca modificator de constructor: Un constructor declarat ca
constcreează instanțe imuabile ale clasei, dacă toate câmpurile sale sunt finale (final) sau constante (const).class Point { final double x; final double y; const Point(this.x, this.y); // Constructor constant } const origin = Point(0.0, 0.0); // Crearea unei instanțe constante -
Pentru crearea colecțiilor constante: Se folosește pentru a crea liste, seturi și hărți a căror conținut este constant în timpul compilării.
const List<int> primeNumbers = [2, 3, 5, 7, 11]; // Listă constantă const Set<String> constants = {'pi', 'e', 'phi'}; // Set constant const Map<String, double> mathConstants = { 'pi': 3.14159, 'e': 2.71828 }; // Hartă constantă -
În contexte în care se așteaptă o valoare constantă: De exemplu, la crearea de widget-uri în Flutter, unde widget-urile constante pot fi optimizate.
// În contextul Flutter const Text('Hello, World!'); // Widget constant
Diferențe față de final:
constdefinește o valoare cunoscută în timpul compilării.finaldefinește o valoare care este atribuită o singură dată în timpul execuției și nu poate fi modificată ulterior.
| Caracteristică | const |
final |
|---|---|---|
| Timpul de inițializare | În timpul compilării | În timpul execuției (o dată) |
| Imutabilitatea valorii | Inalterabilă | Atribuită o dată, apoi inalterabilă |
| Aplicarea la instanțe | Creează o instanță constantă (dacă constructorul este const) |
Creează o referință inalterabilă la un obiect |
| Aplicarea la colecții | Creează o colecție inalterabilă cu conținut inalterabil | Creează o referință inalterabilă la o colecție (conținutul poate fi modificabil) |