Sobes.tech
Middle

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:

  1. 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ă
    
  2. Ca modificator de constructor: Un constructor declarat ca const creează 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
    
  3. 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ă
    
  4. Î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:

  • const definește o valoare cunoscută în timpul compilării.
  • final defineș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)